変換エラーメッセージを日本語にするには

提供: tknotebook
移動: 案内検索

メインページ>コンピュータの部屋#Java>Struts2 Tips


struts2 では通常、画面のバリデーションや型変換でエラーがある場合、 画面を遷移せず、画面を再表示するようにします。

この時、フォームのフィールドに型変換エラーがあると、 例えばint 型のプロパティに対し、数字でない入力を行うと、 そのフィールドの上に

Invalid Field Value Error for ~

と表示されてしまいます。~はプロパティ名で、残念ながらフィールドのラベルではありません。英語でしかもクラスのプロパティ名を利用者に見せられませんから、これはなんとかする必要が有ります。

この文字列を変更するには、アクションクラスのクラスファイルと同じフォルダに アクションクラス名.properties というファイルを作り

invalid.fieldvalue.age=年齢は数字で入れてください

と入れておくと、メッセージが切り替わります。

invalid.fieldvalue.age の最後の部分は age はアクションクラスのプロパティ名です。

全ての型変換メッセージを一律に変更したい場合は

struts.xml に

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

または クラスパスに置いた struts.properties に

struts.custom.i18n.resources=MessageResources 

を加えておいて、クラスパス内に MessageResources.properties を作り

xwork.default.invalid.fieldvalue=型変換エラーです。

と書けば、全ての型変換のエラーメッセージは「型変換エラーです」になります。

いずれの場合も メッセージに {0} を混ぜれば、そこのプロパティ名が表示されますが、 プログラマではない利用者に見せてもあまり意味はないでしょう。面倒でもきめ細かく エラー内容を記述できる、アクションクラス名.properties というファイル を使うやり方をお勧めします。