Vaadin中点击按钮后添加额外表单验证的实现问题
问题:表单提交时添加额外业务验证不显示错误消息
我需要仅在用户提交表单时添加额外的业务逻辑验证。表单只有一个带必填验证的TextField,提交时需检查业务逻辑并在该字段上显示错误提示。
我尝试了以下代码,但错误消息未显示:
submitButton.addClickListener(event -> { if (binder.isValid()) { if (service.isValid(textField.getValue())) { binder.writeBeanIfValid(userIdentity); // 后续业务逻辑 } } });
我不想通过清空字段来触发错误,这不符合预期行为。
编辑记录
- 按照@Knoobie的建议改用
addClickListener,问题依旧。 - 采用@Tatu的方案解决了问题,代码如下:
submitButton.addClickListener(event -> { if (binder.isValid()) { var extraValidator = binder.forField(textField).withValidator(businessValidator).bind("field"); if (binder.validate().getBeanValidationErrors().isEmpty()) { binder.writeBeanIfValid(userIdentity); // 后续业务逻辑 } else { binder.removeBinding(extraValidator); } } });
内容的提问来源于stack exchange,提问作者Marcell Barbacena
相关产品推荐
相关产品推荐

