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
相关产品推荐
相关产品推荐

