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

Vaadin中如何允许输入字段为空,非空时触发验证?

表单字段验证问题修复

你的代码问题在于验证器会对所有输入(包括空字符串)执行格式校验,而空字符串匹配正则时必然失败,导致空字段也触发错误。

修复后的代码如下:

binder.forField(field)
        .withValidator(field -> field.isEmpty() || field.matches(REGEX),
            FORMAT_ERROR_MSG)
        .bind("field");

逻辑说明

  • 当字段为空字符串时,field.isEmpty()返回true,直接通过验证
  • 当字段非空时,才会执行field.matches(REGEX)校验格式是否符合要求

如果需要兼容字段值为null的场景(比如未输入时字段值是null而非空字符串),可以调整验证逻辑:

binder.forField(field)
        .withValidator(field -> field == null || field.isEmpty() || field.matches(REGEX),
            FORMAT_ERROR_MSG)
        .bind("field");

内容的提问来源于stack exchange,提问作者Clancinio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:15:55