Struts 2でグローバル・リソース・バンドルを構成する方法
多くの場合、アプリケーション内のすべてのクラスで使用可能なメッセージを格納するために、グローバルリソースバンドル(プロパティファイル)が必要になることがあります。
ダウンロードする – リンク://wp-content/uploads/2010/06/Struts2-global-resource-bundle-Example.zip[Struts2-global-resource-bundle-Example.zip]
Struts 2では、グローバルリソースバンドルを設定する3つの方法があります。
1. struts.properties
“struts.properties”ファイル内のグローバルリソースバンドルを設定します。ここでは、 ”
global.properties
“という名前のプロパティファイルをグローバルリソースバンドルとして定義します。
struts.custom.i18n.resources = global
複数のリソースバンドルの場合は、プロパティファイルをコンマで区切ります。
struts.custom.i18n.resources = global, another-properties-file
2. struts.xml
あるいは、グローバルリソースバンドルを
struts.xml
設定ファイルの定数値として設定することもできます。
<struts> <constant name="struts.custom.i18n.resources" value="global"/> </struts>
3.リスナー
最後の方法は、サーブレット・リスナーを使用してグローバル・リソース・バンドルとしてプロパティ・ファイルをロードすることです。
package com.mkyong.common.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import com.opensymphony.xwork2.util.LocalizedTextUtil; public class GlobalMessagesListener implements ServletContextListener { private static final String DEFAULT__RESOURCE = "global"; public void contextInitialized(ServletContextEvent arg0) { LocalizedTextUtil.addDefaultResourceBundle(DEFAULT__RESOURCE); } public void contextDestroyed(ServletContextEvent arg0) { } }
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app__2__3.dtd" > <web-app> <display-name>Struts 2 Web Application</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/** </url-pattern> </filter-mapping> <listener> <listener-class> com.mkyong.common.listener.GlobalMessagesListener </listener-class> </listener> </web-app>