Com*_*ver 2 java forms validation wicket
我有一个实现的类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);
}
}
Run Code Online (Sandbox Code Playgroud)
实例化TextField
corporateNameInput = new TextField<String>(CORPORATE_NAME_INPUT_ID, new PropertyModel<String>(this, ""));
设置TextField属性
corporateNameInput.add(new CorporateNameValidator());
corporateNameInput.setOutputMarkupPlaceholderTag(true);
然后我将TextField添加到表单中.
来自JavaDoc IValidator:
表示可以验证
IValidatable对象的验证器的接口.除非验证器也实现了
INullAcceptingValidator接口,否则Wicket不会将null值传递给IValidator#validate(IValidatable)方法.
它是按照设计的,你应该实现INullAcceptingValidator.
| 归档时间: |
|
| 查看次数: |
2500 次 |
| 最近记录: |