を実装するクラスがありIValidator
ます。このバリデータークラスを自分のに追加するTextField
と、オーバーライドされたメソッドvalidate(Invalidatable<T>)
が呼び出されます。ただし、TextField
が空の場合、メソッドは呼び出されず、検証は行われません。なぜこうなった?これは予想される動作ですか?
バリデータークラス
public class CorporateNameValidator implements IValidator<String> {
private static final String ERROR_EMPTY = "Error";
@Override
public void validate(IValidatable<String> validatable) {
//Method not called when TextField has blank value.
final String name = validatable.getValue();
info("NAME: " + name);
}
}
TextFieldのインスタンス化
corporateNameInput = new TextField<String>(CORPORATE_NAME_INPUT_ID, new PropertyModel<String>(this, ""));
TextFieldプロパティの設定
corporateNameInput.add(new CorporateNameValidator());
corporateNameInput.setOutputMarkupPlaceholderTag(true);
次に、TextFieldをフォームに追加します。