jp.terasoluna.fw.web.struts.util
クラス SpringMessageResources

java.lang.Object
  上位を拡張 org.apache.struts.util.MessageResources
      上位を拡張 jp.terasoluna.fw.web.struts.util.SpringMessageResources
すべての実装されたインタフェース:
java.io.Serializable

public class SpringMessageResources
extends org.apache.struts.util.MessageResources

SpringのメッセージソースをStrutsから利用するMessageResources実装クラス。

SpringMessageResourcesFactoryをstruts-config.xmlのmessage-resources要素 のfactory属性に設定する。

struts-config.xml設定例(※parameter省略時)

 <message-resources parameter=""
   factory="jp.terasoluna.fw.web.struts.util.SpringMessageResourcesFactory"/>
 

struts-config.xml設定例(※parameter指定時)

 <message-resources parameter="hogeMessageSource"
   factory="jp.terasoluna.fw.web.struts.util.SpringMessageResourcesFactory"/>
 

Bean定義ファイル設定例 ResourceBundleMessageSourceを利用する場合、basenamesプロパティには メッセージプロパティファイルを指定する。

 <bean id="messageSource"
       class="org.springframework.context.support.ResourceBundleMessageSource">
   <property name="basenames" value="MessageResources"/>
 </bean>
 
DataSourceMessageSourceを利用するとDBメッセージが扱えるようになる。

 <bean id="messageSource"
       class="jp.terasoluna.fw.message.DataSourceMessageSource">
   <property name="dbMessageResourceDAO" ref="dbMessageResourceDAO"/>
 </bean>
 

第2メッセージソースを定義する場合のBean定義ファイル設定例

 <bean id="messageSource"
       class="jp.terasoluna.fw.message.DataSourceMessageSource">
   <property name="dbMessageResourceDAO" ref="dbMessageResourceDAO"/>    
   <property name="parentMessageSource" ref="parentSource"/>
 </bean>
 
 <bean id="parentSource"
       class="org.springframework.context.support.ResourceBundleMessageSource">
   <property name="basenames" value="MessageResources"/>
 </bean>
 

このクラスは、 Won't FixとなっているStrutsのバグ STR-2172(https://issues.apache.org/jira/browse/STR-2172) を回避する手段を有している。
詳細は、MessageFormatCacheMapFactory を参照。

関連項目:
MessageFormatCacheMapFactory, SpringMessageResourcesFactory, ResourceBundleMessageSource, DataSourceMessageSource, 直列化された形式

フィールドの概要
private  org.springframework.web.context.WebApplicationContext context
          アプリケーションコンテキスト
private static java.lang.String ERR_BEAN_EXCEPTION
          エラーメッセージキー
private static org.apache.commons.logging.Log log
          ログインスタンス
private  org.springframework.context.MessageSource messageSource
          Springのメッセージソース
private static long serialVersionUID
          シリアルバージョンID
 
クラス org.apache.struts.util.MessageResources から継承されたフィールド
config, defaultFactory, defaultLocale, factory, formats, returnNull
 
コンストラクタの概要
SpringMessageResources(org.apache.struts.util.MessageResourcesFactory factory, java.lang.String config)
          指定されたパラメータによってSpringMessageResourcesを生成する。
SpringMessageResources(org.apache.struts.util.MessageResourcesFactory factory, java.lang.String config, boolean returnNull)
          指定されたパラメータによってSpringMessageResourcesを生成する。
 
メソッドの概要
 java.lang.String getMessage(java.util.Locale locale, java.lang.String key)
          指定されたキーとロケールにもとづきメッセージ文言を取得する。
private  void initMessageSource()
          MessageSourceの初期化を行う。
private  void replaceMessageFormatCache()
          MessageFormatキャッシュ(formats)のインスタンス差し替えを行う。
 
クラス org.apache.struts.util.MessageResources から継承されたメソッド
escape, getConfig, getFactory, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessage, getMessageResources, getReturnNull, isEscape, isPresent, isPresent, localeKey, log, log, messageKey, messageKey, setEscape, setReturnNull
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

serialVersionUID

private static final long serialVersionUID
シリアルバージョンID

関連項目:
定数フィールド値

log

private static org.apache.commons.logging.Log log
ログインスタンス


ERR_BEAN_EXCEPTION

private static final java.lang.String ERR_BEAN_EXCEPTION
エラーメッセージキー

関連項目:
定数フィールド値

context

private org.springframework.web.context.WebApplicationContext context
アプリケーションコンテキスト


messageSource

private org.springframework.context.MessageSource messageSource
Springのメッセージソース

コンストラクタの詳細

SpringMessageResources

public SpringMessageResources(org.apache.struts.util.MessageResourcesFactory factory,
                              java.lang.String config)
指定されたパラメータによってSpringMessageResourcesを生成する。

パラメータ:
factory - メッセージリソースファクトリ
config - コンテナから取得するMessageSourceのBean名 (省略時はデフォルトの"messageSource")

SpringMessageResources

public SpringMessageResources(org.apache.struts.util.MessageResourcesFactory factory,
                              java.lang.String config,
                              boolean returnNull)
指定されたパラメータによってSpringMessageResourcesを生成する。

パラメータ:
factory - メッセージリソースファクトリ
config - コンテナから取得するMessageSourceのBean名 (省略時はデフォルトの"messageSource")
returnNull - org.apache.struts.util.MessageResources クラスの returnNullfalse 指定時、キーに該当するメッセージが 存在しない場合???Locale.key???という形式でメッセージを 返却する。
メソッドの詳細

replaceMessageFormatCache

private void replaceMessageFormatCache()
MessageFormatキャッシュ(formats)のインスタンス差し替えを行う。

Strutsのバグ STR-2172回避用のキャッシュオブジェクトに差し替える。

関連項目:
MessageFormatCacheMapFactory

initMessageSource

private void initMessageSource()
MessageSourceの初期化を行う。


getMessage

public java.lang.String getMessage(java.util.Locale locale,
                                   java.lang.String key)
指定されたキーとロケールにもとづきメッセージ文言を取得する。

定義:
クラス org.apache.struts.util.MessageResources 内の getMessage
関連項目:
MessageResources.getMessage(java.util.Locale, java.lang.String)