如何让我的验证器在空值上引发错误?我可以通过我的日志看到,当我尝试提交一个空字段时,它正在调用验证器,但它永远不会引发 onError,所以我无法处理这个问题。我想在有人尝试提交空字段而不是检查我的表单的 onSubmit 时在反馈面板中显示错误消息。
@Override
protected void onValidate(IValidatable<String> validatable) {
String value = validatable.getValue();
if (value == null) {
ValidationError error = new ValidationError();
error.addMessageKey("messageKey");
validatable.error(error);
}
}
@Override
public void validateOnNullValue() {
return true;
}
编辑
component.setRequired
如果上述方法不容易实现,有没有一种方法可以让我在反馈面板为真并且表单提交时使用空白字段时轻松注册错误消息?我只是不希望在用户尝试提交带有空字段的表单时没有反馈给用户,但我也不希望在 onSubmit 处理程序中对此有逻辑。
编辑 2更多上下文
以下是我要验证的两个字段:
final TextField<String> currentLpnField = new TextField<String>("currentLpn", Model.of(""));
currentLpnField.setOutputMarkupId(true);
currentLpnField.setRequired(true);
currentLpnField.add(new BarcodeLPNValidator());
final TextField<String> upcField = new TextField<String>( "upc", new Model<String>() );
upcField.setOutputMarkupId(true);
upcField.setRequired(true);
upcField.add(new BarcodeUPCValidator());
这是我的属性文件中的内容:
upc.null=UPC cannot be null
upc.Required=UPC is required
currentLpn.null=LPN cannot be null
currentLpn.Required=LPN is required
只有在我在字段中输入信息、验证它、然后删除它并再次尝试验证后,我才会收到 *.Required 消息。如果我只是加载表单并提交它而不输入任何数据,我什么也得不到。