1

getConverter メソッドをオーバーライドして、代わりに Joda タイム コンバーターを追加する TextField があります。

new TextField<P>(id) {
    @Override
    public <P> IConverter<P> getConverter(Class<P> type) {
        return (IConverter<P>) new JodaDateTimeConverter();
    }
};

入力が無効な場合、コンバーターは null を返します。ただし、このフィールドに必須のフラグを立てたいのですが、その方法がわかりません。

  • 変換前に必要なチェックが行われるため、 textField.isRequired(true) は機能しません。これは、空ではないが無効な入力に対しては機能しません。
  • textField.add(.. some validator ..) は機能しません。これは、コンバーターが null を返した場合、バリデーターが呼び出されないためです。

必要に応じて日付フィールドにフラグを立てる方法が本当にわかりません。その方法を知っていますか?おそらく私のアプローチはまったく適していませんか?

4

1 に答える 1

1

通常の代わりにINullAcceptingValidatorを追加すると、null 値に対しても呼び出されます。

true を返すようにバリデーターをサブクラス化するvalidateOnNullValue()ことも役立つ場合があります。

JavaDocs から:

null の場合に値を検証するかどうかを示します。値が実際に null であることを確認したい場合を除き (まれな使用例です)、通常は値が null の場合は検証をスキップすることが望ましいです。これを拡張し、値が null であることを確認したいバリデーターは、このメソッドをオーバーライドして true を返す必要があります。

于 2013-02-13T16:00:21.953 に答える