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

提供: tknotebook
移動: 案内検索
 
(1人の利用者による、間の2版が非表示)
12行: 12行:
 
  Invalid Field Value Error for ~
 
  Invalid Field Value Error for ~
  
と表示されてしまいます。~はプロパティ名で、残念ながらフィールドのラベルではありません。
+
と表示されてしまいます。~はプロパティ名で、残念ながらフィールドのラベルではありません。英語でしかもクラスのプロパティ名を利用者に見せられませんから、これはなんとかする必要が有ります。
  
 
この文字列を変更するには、アクションクラスのクラスファイルと同じフォルダに
 
この文字列を変更するには、アクションクラスのクラスファイルと同じフォルダに
 
アクションクラス名.properties というファイルを作り
 
アクションクラス名.properties というファイルを作り
  
  invalid.firldvalue.age=年齢は数字で入れてください
+
  invalid.fieldvalue.age=年齢は数字で入れてください
  
 
と入れておくと、メッセージが切り替わります。
 
と入れておくと、メッセージが切り替わります。
27行: 27行:
 
struts.xml に
 
struts.xml に
 
  <constant name="struts.custom.i18n.resources" value="MessageResources" />  
 
  <constant name="struts.custom.i18n.resources" value="MessageResources" />  
または クラスパスに置いた  struts.properties
+
または クラスパスに置いた  struts.properties
 
  struts.custom.i18n.resources=MessageResources  
 
  struts.custom.i18n.resources=MessageResources  
 
を加えておいて、クラスパス内に MessageResources.properties を作り
 
を加えておいて、クラスパス内に MessageResources.properties を作り

2017年2月27日 (月) 14:54時点における最新版

メインページ>コンピュータの部屋#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 というファイル を使うやり方をお勧めします。