2007 年 4 月 19 日 23 時 55 分

メッセージリソースの用意


このアーカイブは同期化されません。 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」に登録される。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.