struts 2における国際化の問題
国際化
1.グローバル範囲のリソースファイル
srcディレクトリの下で履歴書リソースファイル、名前が付いたらbaseName_laguage_country.properties、例えばwzh_en_US.properties,wzh_zh_CN.properties,
そしてstrutsでxmlでの構成
valueリソースファイル名のbaseName
2.ページまたはactionでの国際化情報へのアクセス
2.1>jspページでの表示方法
nameはリソースファイルのkey値です
2.2>actionでのアクセス
ActionクラスはActionSupportを継承し、getText()メソッドを使用して国際化情報を取得する必要があります.このメソッドの最初のパラメータは、リソースファイルのkey値を指定するために使用されます.
アクションのように
例えば:
3.プレースホルダ付き国際情報の出力
3.1>jspページ出力
アクション
4.パッケージ範囲のリソースファイル
Javaのパッケージの下にpackageを配置するlanguage_country.propertiesリソースファイル、packageは固定書き方
例:package_en_US.properties,package_zh_CN.properties .
パケットおよびサブパケットの下にあるactionは、指定したkeyのメッセージを検索するとpackageリソースファイルから検索され、対応するkeyが見つからない場合に指
struts.custom.i18n.resourcesのリソースファイルで検索します.
また、actionジャンプを経てのみpackageで検索され、見つからない場合は指定したリソースファイルで検索されます.
アクションがない場合は、指定したリソースファイルの下でのみ検索されます.
5.アクション範囲のリソースファイル
Actionクラスが存在するパスの下に配置
ActionClassName_language_country.propertiesリソースファイル、ActionClassNameはactionの単純な名前です.指定したリソースをactionで検索すると、actionパスで検索し、packageで検索します.見つからない場合は、指定したリソースファイルで検索します.
6 .jspで指定したリソースファイルに直接アクセスする国際化情報
いわゆるjspダイレクトアクセスはactionジャンプを経ていない
次のようになります.
1.グローバル範囲のリソースファイル
srcディレクトリの下で履歴書リソースファイル、名前が付いたらbaseName_laguage_country.properties、例えばwzh_en_US.properties,wzh_zh_CN.properties,
そしてstrutsでxmlでの構成
<constant name="struts.custom.i18n.resources" value="wzh" />
valueリソースファイル名のbaseName
2.ページまたはactionでの国際化情報へのアクセス
2.1>jspページでの表示方法
<s:text name="welcome" />
nameはリソースファイルのkey値です
2.2>actionでのアクセス
ActionクラスはActionSupportを継承し、getText()メソッドを使用して国際化情報を取得する必要があります.このメソッドの最初のパラメータは、リソースファイルのkey値を指定するために使用されます.
アクションのように
public String execute(){
ActionContext.getContext().getSession().put("message", this.getText("welcome")) ;
return "success";
}
2.3>フォームラベルで、keyプロパティを使用してリソースファイルのkey値を指定します.例えば:
3.プレースホルダ付き国際情報の出力
3.1>jspページ出力
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
3.2>actionでプレースホルダを設定する国際化情報アクション
public String execute(){
ActionContext.getContext().put("message", this.getText("welcome",new String[]{"wzh","study"})) ;
return "success";
}
jspに${message}国際化情報を表示4.パッケージ範囲のリソースファイル
Javaのパッケージの下にpackageを配置するlanguage_country.propertiesリソースファイル、packageは固定書き方
例:package_en_US.properties,package_zh_CN.properties .
パケットおよびサブパケットの下にあるactionは、指定したkeyのメッセージを検索するとpackageリソースファイルから検索され、対応するkeyが見つからない場合に指
struts.custom.i18n.resourcesのリソースファイルで検索します.
また、actionジャンプを経てのみpackageで検索され、見つからない場合は指定したリソースファイルで検索されます.
アクションがない場合は、指定したリソースファイルの下でのみ検索されます.
5.アクション範囲のリソースファイル
Actionクラスが存在するパスの下に配置
ActionClassName_language_country.propertiesリソースファイル、ActionClassNameはactionの単純な名前です.指定したリソースをactionで検索すると、actionパスで検索し、packageで検索します.見つからない場合は、指定したリソースファイルで検索します.
6 .jspで指定したリソースファイルに直接アクセスする国際化情報
いわゆるjspダイレクトアクセスはactionジャンプを経ていない
次のようになります.
=
<s:i18n name="wzh">
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<br/>
=
<s:i18n name="cn/itcast/action/package">
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<br/>
action =
<s:i18n name="cn/itcast/action/HelloWorldAction">
<s:text name="welcome" >
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
</s:i18n>
<br/>