5

dd/MM/yyyy のような、struts の日付の入力形式を強制する方法があるかどうかを知りたいです。
日付はテキスト フィールドに書き込まれます。これはロケールに依存する問題であると読みましたが、単純な形式の変更のためにロケールを切り替えるのは多すぎるようです。

Action クラスのメソッド内で呼び出すことができることはわかってaddFieldError(fieldName, errorMessage)いますが、日付形式を Action-validation.xml ファイルで構成することを考えるべきだったように感じます。プロパティファイルでこれを構成するために検索しましたが、実際の例は見つかりませんでした。

カスタムStrutsTypeConverterを使用addFieldError(fieldName, errorMessage)していて、それを行う唯一の方法ですか? または、テキストフィールドに入力された日付形式を指定できる別バージョンの struts はありますか?
アップデート: 私は自分自身を十分に明確にしたと思いましたが、いくつかの答えはそうではありません。
ユースケースは次のとおりです。ユーザーがテキストフィールドに任意の形式で日付を手動で入力すると、struts2 は日付形式がプログラマーによって設定された形式に対応しているかどうかを検証し、それに応じてメッセージを表示します。
タグ付きのjQuery日付ピッカーは、<s:date>私が達成したいことの代わりになる可能性がありますが、それは私が求めたものではありません. さらに、Javascript を無効にして、日付ピッカーを役に立たなくすることができます。私が理解している限り、jQuery は Javascript ライブラリです。

4

2 に答える 2

0

私のアクションは実装されModelDrivenましたが、日付形式をテキスト フィールドで強制的に指定することはできません。独自のバリデーターを使用しましたが、フォーム要素のマッピングをStringアクション クラスの名前付きに変更し、バリデーターを使用しました。リソース バンドルから取得しSimpleDateFormatた形式を使用して日付に変換し、日付を再度形式設定して、表現がテキスト フィールドに入力されたものと同じかどうかを確認します。結局、フォーマットが明確であることはほとんどありません。
私がそれらを歓迎する他の提案がある場合、これが唯一の選択肢のようです.
この欠点は、少なくとも厄介だと思います。

于 2013-08-08T12:36:25.833 に答える