2

struts 2 で java.util.Date オブジェクトのフォーマットを変更する方法。私がテストしたところ、Struts 2 は m/d/yy を受け入れます。フォーマットを変更することは可能ですか?

また、デフォルトのメッセージ「フィールド日付の無効なフィールド値」を変更する方法は?

struts2 の日付タグは、出力でのみ使用できます。

4

3 に答える 3

2

s:dateタグにフォーマットを渡すことができます

<s:date name="myDate" format="yyyy-MM-dd" />

デフォルトのエラー メッセージを変更するにはvalidation.xml、メッセージ パラメータを追加 します。

   <field name="myDate">
        <field-validator type="date">
            <message key="errors.myDateRequired" />
        </field-validator>
    </field>

次に、ApplicationResources.propertiesファイルで値を提供しますerrors.myDateRequired

更新:コメントによると

s:dateは読み取り専用タグです。つまり、ユーザーからの入力を受け入れるために使用することはできません。

textField が異なる形式の日付を受け入れるようにするには、いくつかの方法があります。

  1. struts2-jQuery プラグインを使用します。さまざまな日時形式、showcaseDatePickerTagをサポートする非常に優れた日付ピッカーがあります。
  2. ユーザー入力をフォーマットするためのカスタム JavaScript コード。
  3. jQuery を使用し (許可されている場合)、jQuery datepicker を使用する

カスタムコンバーターを使用して、日付にテキストフィールドを使用できます。

于 2012-05-25T02:44:01.543 に答える
0

Strutsが受け入れる日付形式は、ユーザーのロケールによって異なります。したがって、ロケールが異なれば、日付形式も異なります。この方法では、同じロケールで複数の日付形式をサポートすることはできませんが、とにかくこれが必要になる理由はわかりません。ユーザーを混乱させるだけです。JavaScriptを使用せずに同じロケールで異なる日付形式をサポートする唯一の方法は、@mprabhatノートのようにカスタム日付コンバーターを使用することです。

于 2012-05-25T11:58:35.707 に答える
0

これに関する公式ドキュメントを見ることができます:

リソースバンドルのすべての言語の形式を定義します。たとえば、適切な en_US フォーマット定義拡張は次のようになります。

format.date = {0,date,MM/dd/yy}

並行して、以下を de_DE バンドルに追加できます。

format.date = {0,date,dd.MM.yyyy}

http://struts.apache.org/2.1.6/docs/formatting-dates-and-numbers.html

于 2012-06-12T16:05:39.720 に答える