public class DBMessageResources
extends org.apache.struts.util.MessageResources
メッセージリソース機能とは、JSP内で表示するエラーメッセージなど、
特定のキーに対してメッセージを取得する機能である。
このクラスを使用することによって、メッセージリソース定義ファイル
(通常Strutsで使われるプロパティファイル形式のメッセージリソース)だけでなく、
クラスロード時にDBを参照し、DBからのメッセージリソースを使用することが
可能である。
このクラスは、
Won't FixとなっているStrutsのバグ STR-2172(https://issues.apache.org/jira/browse/STR-2172)
を回避する手段を有している。
詳細は、MessageFormatCacheMapFactory
を参照。
DB内で設定されたメッセージリソースは、全モジュール内で 共有されるが、メッセージリソース定義ファイルのメッセージリソースは、 Strutsの各モジュールごとに独立する。 以下サンプルを用いて、このクラスを使用したときに、メッセージリソース機能が どのように振舞うか解説する。
例として、モジュールA、モジュールBという複数のモジュールが存在し、
モジュール毎のメッセージリソースの設定(メッセージリソース定義ファイル)に
下記のような指定があるとする。
モジュール名 | メッセージキー | メッセージ文言 | メッセージの登録先 |
モジュールA | message.propMessageResource | "moduleA" | メッセージリソース定義ファイル |
message.dbMessageResource | "DB" | DB | |
モジュールB | message.propMessageResource | "moduleB" | メッセージリソース定義ファイル |
message.subMessageResource | "subModule" | メッセージリソース定義ファイル |
message.propMessageResource
message.dbMessageResource
message.propMessageResource
message.subMessageResource
message.dbMessageResource
message.propMessageResource
が見えているが、各モジュールで
取得できるメッセージは、
message.dbMessageResource
に対して取得できるメッセージは、
モジュールA、モジュールBともに "DB"である。module.subMessageResource
のキーで
参照しても、メッセージは取得できない。)
GlobalMessageResources
を参照のこと。
.properties
)を取り除いたものDBMessageResourcesFactory
MessageResourcesDAOImpl
の使用法については
同クラスのJavadocを参照のこと。
<メッセージキー>=<メッセージ文言>
errors.requiredArray={0}番目の{1}は必須入力です。
errors.alphaNumericStringArray={0}番目の{1}は半角英数字でなくてはなりません。
修飾子とタイプ | フィールドと説明 |
---|---|
static String |
MESSAGES_DAO
システム設定プロパティファイル(system.properties)内で
DAOを取得する際に使用するキー。
|
static String |
MESSAGES_SQL
システム設定プロパティファイル(system.properties)内で
SQLを取得する際に使用するキー。
|
コンストラクタと説明 |
---|
DBMessageResources(org.apache.struts.util.MessageResourcesFactory factory,
String config)
指定されたパラメータによってDBMessageResourcesを生成する。
|
DBMessageResources(org.apache.struts.util.MessageResourcesFactory factory,
String config,
boolean returnNull)
指定されたパラメータによってDBMessageResourcesを生成する。
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected static void |
dbInit()
DB内のメッセージキーとメッセージ文言のペアを取得する。
|
String |
getMessage(Locale locale,
String key)
指定されたキーにもとづきメッセージ文言を取得する。
|
String |
getMessage(String key)
指定されたキーにもとづきメッセージ文言を取得する。
|
protected void |
propertyInit(String propertyFile)
メッセージリソース定義ファイルからメッセージキーとメッセージ文言の
ペアを取得する。
|
escape, getConfig, getFactory, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessageResources, getReturnNull, isEscape, isPresent, isPresent, localeKey, log, log, messageKey, messageKey, setEscape, setReturnNull
public static final String MESSAGES_DAO
public DBMessageResources(org.apache.struts.util.MessageResourcesFactory factory, String config)
factory
- メッセージリソースファクトリconfig
- メッセージリソース定義ファイル名public DBMessageResources(org.apache.struts.util.MessageResourcesFactory factory, String config, boolean returnNull)
factory
- メッセージリソースファクトリconfig
- メッセージリソース定義ファイル名returnNull
- org.apache.struts.util.MessageResources
クラスの returnNull
false
指定時、キーに該当するメッセージが
存在しない場合???Locale.key???という形式でメッセージを
返却する。protected static void dbInit()
protected void propertyInit(String propertyFile)
propertyFile
- メッセージリソース定義ファイル名public String getMessage(Locale locale, String key)
すべてのメッセージリソースに初期化処理が行われなかった場合、 あるいは、どの定義からもメッセージキーに該当する値が 取得できなかった場合、生成時のreturnNull指定によって、 nullか、あるいはStrutsの形式(???Locale.key???)で返却される。
なお、ここで指定されているロケールは考慮されない。 すなわちgetMessage(key)と同じ動作をする。
getMessage
クラス内 org.apache.struts.util.MessageResources
locale
- メッセージロケール。考慮されないkey
- メッセージキーpublic String getMessage(String key)
getMessage
クラス内 org.apache.struts.util.MessageResources
key
- メッセージキーCopyright © 2014. All Rights Reserved.