You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:13:15