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

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>