我有一个实现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);
}
}
实例化文本字段
corporateNameInput = new TextField<String>(CORPORATE_NAME_INPUT_ID, new PropertyModel<String>(this, ""));
设置文本字段属性
corporateNameInput.add(new CorporateNameValidator());
corporateNameInput.setOutputMarkupPlaceholderTag(true);
然后我将TextField添加到Form.
来自IValidator
:的JavaDoc
接口,表示可以验证
IValidatable
对象的验证器。除非验证器也实现CCD_ 10接口,Wicket不会将
null
值传递给IValidator#validate(IValidatable)
方法。
它是按设计的,您应该实现INullAcceptingValidator
。