[Seasar-user:20326] Re: [SAStruts] 多言語対応での入力チェック時にラベル名が命名規則で解決されない。

Yasuo Higa [E-MAIL ADDRESS DELETED]
2010年 11月 10日 (水) 14:12:01 JST


ひがです。

返答が遅れ申し訳ありません。
> 
> いつもお世話になっております。大塚です。
> SAStruts 1.0.4-sp8を使用して国際化アプリケーションを開発しております。
> 
> 件名の通り、不具合らしき挙動を見つけましたので、ご報告いたします。
> 
結論から言うと不具合ではなく、想定どおりです。
SAStrutsはバリデーション用のメッセージを起動時に組み立てます。
起動時には、ロケールはen_USなので、リソースは存在せず、
その場合、SAStrutsはフィールド名をそのまま(リソースは見ない:resource=false)
arg1に適用します。

この後、ロケールを変えてもリソースは見ないという設定になっているので、
変わらないというわけです。

対応策としていいと思うのは、application.propertiesにもlabels.hogeの
エントリを作っておくことです。
これなら、想定どおりに動くと思います。

よろしくお願いします。

> 再現方法
> ・JVMのデフォルトエンコードをen_USとしておく
> ・publicなフィールドhogeを持ったActionFormを用意する。
> ・上記のhogeに@Requiredを指定する。ただし、arg0は指定しない。
> ・application_ja.propertiesに labels.hoge=ほげ を定義する。
> ・application.propertiesには labels.hoge= を定義しない。
> ・ブラウザの言語(AcceptedLanguage)をjaとする。
> ・上記サンプルにアクセスし、必須項目"ほげ"を未入力でsubmitする。
> 
> 期待している結果
> ・命名規約によってブラウザに"ほげは必須入力です"と表示される。
> 
> 実際の結果
> ・ブラウザに"hogeは必須入力です"と表示される。
> 
> 回避方法
> arg0要素でlabels.hogeを指定する。
> 
> 以上です。
> お気づきの点がございましたら、ご指摘いただけると幸いです。
> 
> 
> 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> 


Seasar-user メーリングリストの案内