このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
メッセージリソースを使うためには、
まず properties ファイルを作成する必要がある。
jp.loafer.test.resources パッケージに置くことにしよう。
まずは、基準となるプロパティファイル。
これにはデフォルトとして英語で記述することにする。
もちろん、ここに日本語を書いても良いのだが、
その場合、どのロケールでも日本語となってしまう。
========== Messages.properties ==========
value.action.allow = Allow
value.action.deny = Deny
========== end of Messages.properties ==========
キー名には深い意味はない。
value = プロパティの値に対応するローカライズ文字列
action = フィルタ処理って感じだ。
allow が許可用の表示文字列、
deny が拒否用の表示文字列である。
英語なので、先頭が大文字である以外そのままだ。
続いて、日本のロケールに対応したプロパティファイル。
日本語は ja、日本の国別コードは JP である。
ファイルのベース名に続けてこれらを追加する。
Messages_ja_JP.properties とすれば、日本の日本語専用
Messages_ja.properties とすれば、各国の日本語用。
今のところ日本語は日本にしかないので、
とりあえずは Messages_ja.properties としておこう。
========== Messages_ja.properties ==========
value.action.allow = 許可
value.action.deny = 拒否
========== end of Messages_ja.properties ==========
上記に native2ascii をかけるのを忘れないように。
直接書く場合は、以下のようになる。
value.action.allow = \u8a31\u53ef
value.action.deny = \u62d2\u5426
さて、プロパティファイルができたら、
それを Struts 設定ファイルに登録する必要がある。
メッセージリソースの定義は、<message-resources> 要素だ。
場所は、<struts-config> 直下である。
<struts-config> の内容は厳格に順番が定義されており、
<action-mappings> より後ろに書く必要がある。
========== /WEB-INF/struts-config.xml ==========
(…省略…)
<struts-config>
<form-beans>
(…省略…)
</form-beans>
<action-mappings>
(…省略…)
<action-mappings>
<message-resources
parameter="jp.loafer.test.resources.Messages" />
</struts-config>
========== end of /WEB-INF/struts-config.xml ==========
<message-resources> 要素に必須なのは、
parameter 属性のみで、この値には、
基準となるプロパティファイルの基底名を記述する。
基底名とは、拡張子を除いた、FQCN 表記である。
(これは、ResourceBundle を使う時と同じ)
これにより、ActionServlet 起動時に、
parameter 属性の値を引数として
PropertyMessageResources インスタンスが作成され、
アプリケーション(ServletContext)属性、
「org.apache.struts.action.MESSAGE」に登録される。