Child pages
  • Localization

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


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.

Using only


global bundles

If you don't need to use the package-scan-functionality and only base on the global bundles (those provided by the framework and via struts.custom.i18n.resources) you can use existing DefaultLocalizedTextProvider GlobalLocalizedTextProvider implementation. To use this please define the following option in your struts.xml:

Code Block
<constant name="struts.localizedTextProvider" value="defaultglobal-only" />

Custom TextProvider and TextProviderFactory