Child pages
  • Localization

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3


titlePackage hierarchy
Wiki Markup

Default action's class

If you configure action as follow

Code Block
<action name="index">

it will use a default class defined with default-class-ref in struts-default.xml which is com.opensymphony.xwork2.ActionSupport. It means you have two options here to get I18N working in that case:

  • define com/opensymphony/xwork2/ and put messages there
  • point default-class-ref to your base class and then defined appropriated .properties file (corresponding to class' name or package)


There are several ways to access the message resources, including getText, the text tag, and the i18n tag.


Wiki Markup

The default implementation of TextProvider which is used in ActionSupport perform evaluation of value read from bundle base on the provided key, see Localizing Output for an example.

Using the text tag

The text tag retrieves a message from the default resource bundle.


Wiki Markup

Formatting Dates and Numbers

See Formatting Dates and Numbers for more details and examples.

Comparison with Struts 1

Struts 1 users should be familiar with the resource bundle, where you can put all the messages in the application that are going to be translated. Struts 2, though, splits the resource bundles per action or model class, and you may end up with duplicated messages in those resource bundles. A quick fix for that is to create a file called in com/opensymphony/xwork2 and put it on your classpath. This will only work well if all your actions subclass XWork2's ActionSupport.


Next: Type Conversion