メッセージ管理はいいのぉ

ModelDrivenも落ち着いたのでw
メッセージプロパティ周りを調べてみた。
Struts2のサンプルをみるとActionクラスと同名のプロパティファイルがちらほらと。
これってTextProviderがクラス名→インタフェース名→パッケージ名てさかのぼってプロパティファイルを検索してるのね。
LocalizedTextUtil#findTextの中で再回帰検索してたわ。
だから使う側は特に意識しないでActionSupport#getTextを呼べばメッセージが取得できたと。
ActionSupportのサブクラス以外がTextProviderを使う場合には、TextProviderFactory#createInstanceでTextProviderを取得すればOK。
といっても共通メッセージ用のプロパティを作成するのがほとんどだと思うけど、この場合はStruts1.xのときみたく定義が必要。

<constant name="struts.custom.i18n.resources" value="MessageResources" />

struts.xmlで上記を追加。
valueで指定したプロパティファイルが共通で参照されるようになる。
Action以外で利用するように基底クラスを作成するか、共通クラスを用意しておくといいかもしんない。