2

カスタム データ型を UIComponent 属性に作成するにはどうすればよいですか?

例: UIInputDate(an UIInput) と属性Date maxDatemaxDateあるとしDateます。

4

1 に答える 1

1

通常の方法でカスタムバリデータを作成できます。入力コンポーネントはすでに 2 番目の引数として使用可能です。キャストするだけです。

public class UIInputDateRangeValidator implements Validator {

    public void validate(FacesContext context, UIComponent component, Object value) {
        UIInputDate inputDate = (UIInputDate) component;
        Date minDate = inputDate.getMinDate();
        Date maxDate = inputDate.getMaxDate();
        Date date = (Date) value;

        // ... Use Date#after(), Date#before(), etc.
    }

}

カスタム コンポーネントのコンストラクターでバリデーターを作成して追加できます。

public UIInputDate() {
    addValidator(new UIInputDateRangeValidator());
    // You can use setConverter() with new DateTimeConverter() if you didn't already do that.
}
于 2013-08-12T19:40:27.113 に答える