Home > FAQs > How do I set a global resource bundle |
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.
Global resource bundles can be specified in the struts.properties
configuration file.
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.custom.i18n.resources=global-messages, image-messages |
Aside from the properties file, a Listener could also be used to load global resource bundles.
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)
<listener> <listener- class >mypackagename.ActionGlobalMessagesListener</listener- class > </listener> |