|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.ObjectMessageResources
jp.terasoluna.fw.web.struts.action.DBMessageResources
public class DBMessageResources
メッセージリソースクラス。
メッセージリソース機能とは、JSP内で表示するエラーメッセージなど、
特定のキーに対してメッセージを取得する機能である。
このクラスを使用することによって、メッセージリソース定義ファイル
(通常Strutsで使われるプロパティファイル形式のメッセージリソース)だけでなく、
クラスロード時にDBを参照し、DBからのメッセージリソースを使用することが
可能である。
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
<struts-config>
…
<message-resources parameter="MessageResources"
factory="jp.terasoluna.fw.web.struts.action.DBMessageResourcesFactory"
/>
…
</struts-config>
messages.sql=<SQL(SELECT)文>
messages.dao=MessageResourcesDAOの実装クラス
具体例は以下のようになる。
messages.sql=SELECT MESSAGE_KEY, MESSAGE_VALUE FROM MESSAGES
messages.dao=jp.terasoluna.fw.web.struts.action.MessageResourcesDAOImpl
MessageResourcesDAOImpl
の使用法については
同クラスのJavadocを参照のこと。
<メッセージキー>=<メッセージ文言>
具体例は以下のようになる。
errors.requiredArray={0}番目の{1}は必須入力です。
errors.alphaNumericStringArray={0}番目の{1}は半角英数字でなくてはなりません。
GlobalMessageResources
,
DBMessageResourcesFactory
,
MessageResourcesDAO
,
MessageResourcesDAOImpl
フィールドの概要 | |
---|---|
private static java.lang.String |
DB_MESSAGE_RESOURCES_ERROR
メッセージの取得失敗を表すエラーコード。 |
private static java.lang.String |
DB_MESSAGE_RESOURCES_ERROR_INIT
メッセージリソースの初期化失敗を表すエラーコード。 |
private static java.util.Map |
dbMessages
DBから取得したメッセージキーとメッセージ文言を格納するMap。 |
private static Log |
log
ログクラス。 |
private java.util.Map<java.lang.String,java.lang.String> |
messages
メッセージリソース定義ファイルから取得したメッセージキーと メッセージ文言を格納するMap。 |
static java.lang.String |
MESSAGES_DAO
システム設定プロパティファイル(system.properties)内で DAOを取得する際に使用するキー。 |
static java.lang.String |
MESSAGES_SQL
システム設定プロパティファイル(system.properties)内で SQLを取得する際に使用するキー。 |
private static long |
serialVersionUID
シリアルバージョンID |
コンストラクタの概要 | |
---|---|
DBMessageResources(MessageResourcesFactory factory,
java.lang.String config)
指定されたパラメータによってDBMessageResourcesを生成する。 |
|
DBMessageResources(MessageResourcesFactory factory,
java.lang.String config,
boolean returnNull)
指定されたパラメータによってDBMessageResourcesを生成する。 |
メソッドの概要 | |
---|---|
protected static void |
dbInit()
DB内のメッセージキーとメッセージ文言のペアを取得する。 |
java.lang.String |
getMessage(java.util.Locale locale,
java.lang.String key)
指定されたキーにもとづきメッセージ文言を取得する。 |
java.lang.String |
getMessage(java.lang.String key)
指定されたキーにもとづきメッセージ文言を取得する。 |
protected void |
propertyInit(java.lang.String propertyFile)
メッセージリソース定義ファイルからメッセージキーとメッセージ文言の ペアを取得する。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
private static final long serialVersionUID
public static final java.lang.String MESSAGES_DAO
public static final java.lang.String MESSAGES_SQL
private static final java.lang.String DB_MESSAGE_RESOURCES_ERROR
private static final java.lang.String DB_MESSAGE_RESOURCES_ERROR_INIT
private static Log log
private static java.util.Map dbMessages
private java.util.Map<java.lang.String,java.lang.String> messages
コンストラクタの詳細 |
---|
public DBMessageResources(MessageResourcesFactory factory, java.lang.String config)
factory
- メッセージリソースファクトリconfig
- メッセージリソース定義ファイル名public DBMessageResources(MessageResourcesFactory factory, java.lang.String config, boolean returnNull)
factory
- メッセージリソースファクトリconfig
- メッセージリソース定義ファイル名returnNull
- org.apache.struts.util.MessageResources
クラスの returnNull
false
指定時、キーに該当するメッセージが
存在しない場合???Locale.key???という形式でメッセージを
返却する。メソッドの詳細 |
---|
protected static void dbInit()
protected void propertyInit(java.lang.String propertyFile)
propertyFile
- メッセージリソース定義ファイル名public java.lang.String getMessage(java.util.Locale locale, java.lang.String key)
すべてのメッセージリソースに初期化処理が行われなかった場合、 あるいは、どの定義からもメッセージキーに該当する値が 取得できなかった場合、生成時のreturnNull指定によって、 nullか、あるいはStrutsの形式(???Locale.key???)で返却される。
なお、ここで指定されているロケールは考慮されない。 すなわちgetMessage(key)と同じ動作をする。
locale
- メッセージロケール。考慮されないkey
- メッセージキー
public java.lang.String getMessage(java.lang.String key)
key
- メッセージキー
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |