Apache Struts 2 Documentation > Home > FAQs > How do I set a global resource bundle |

Apache Struts 2 Documentation
How do I set a global resource bundle
Edit Page Browse Space Add Page Add News
Added by digi9ten, last edited by adrian deccico on Jan 03, 2007 (view change)

In Struts 2, resource bundles can be associated with classes. The framework will automatically discover and load class-orientated resource bundles. You can also specify one or more global resource bundles, which would be available to all classes in the application, using either the standard properties file, or a custom listener.

## Properties file

Global resource bundles can be specified in the `struts.properties` configuration file.

struts.properties

    struts.custom.i18n.resources=global-messages

| The framework searches the class heirarchy first, then, as a last resource, checks the global resources.

Multiple resource bundles can be specified by providing a comma-separated list.

struts.properties

    struts.custom.i18n.resources=global-messages, image-messages

## Listener

Aside from the properties file, a Listener could also be used to load global resource bundles.

ActionGlobalMessagesListener.java

    public class ActionGlobalMessagesListener implements ServletContextListener {
      private static Logger log = Logger.getLogger(ActionGlobalMessagesListener .class);
      private static final String DEFAULT_RESOURCE = "global-messages";

      /**
       * Uses the LocalizedTextUtil to load messages from the global message bundle.
       * @see
       javax.servlet.ServletContextListener#contextInitialized(javax.servlet.Servle
       tContextEvent)
       */
      public void contextInitialized(ServletContextEvent arg0) {
        log.info("Loading global messages from " + DEFAULT_RESOURCE);
        LocalizedTextUtil.addDefaultResourceBundle(DEFAULT_RESOURCE);
        log.info("Global messages loaded.");
      }

      /**
       * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
       */
      public void contextDestroyed(ServletContextEvent arg0) {

          // do nothing

        }
    }

web.xml:
(under listeners section)

web.xml

    <listener>
      <listener-class>mypackagename.ActionGlobalMessagesListener</listener-class>
    </listener>