「変換エラーメッセージを日本語にするには」の版間の差分

提供: tknotebook
移動: 案内検索
14行: 14行:
 
と表示されてしまいます。~はプロパティ名で、残念ながらフィールドのラベルではありません。
 
と表示されてしまいます。~はプロパティ名で、残念ながらフィールドのラベルではありません。
  
この文字列を変更するには、アクションクラスと同じフォルダに入るように
+
この文字列を変更するには、アクションクラスのクラスファイルと同じフォルダに
 
アクションクラス名.properties というファイルを作り
 
アクションクラス名.properties というファイルを作り
  

2016年12月11日 (日) 15:46時点における版

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


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

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

Invalid Field Value Error for ~

と表示されてしまいます。~はプロパティ名で、残念ながらフィールドのラベルではありません。

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

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

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

invalid.firldvalue.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 というファイル を使うやり方をお勧めします。