public class NullOrNotBlankValidator implements ConstraintValidator<NullOrNotBlank, String> {
public void initialize(NullOrNotBlank parameters) {
// Nothing to do here
}
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
return value == null || value.trim().length() > 0;
}
}
6条答案
按热度按时间mitkmikd1#
您需要创建自定义注解:
@NullOrNotBlank
首先创建自定义注解:
NullOrNotBlank.java
然后是实际的验证器:
NullOrNotBlankValidator.java
nhhxz33t2#
javax.validation或Hibernate Validator中都没有这样的注解。有一个request to add one to Hibernate Validator,但由于可以相对容易地编写自己的注解,因此它被关闭为“不会修复”。建议的解决方案是使用自己的注解类型,如下所示:
或者将
@Pattern
注解与要求存在非空格字符的正则表达式一起使用(如Pattern注解accepts nulls and does not match them against the pattern)。djmepvbi3#
这里有一个漂亮的
javax.validation.constraints.Pattern
注解。可以使用以下内容注解字段:
检查字段是否匹配regex。regex本身是但不是空的(详见此处)。它使用负向前看。
0vvn1miw4#
通过使用javax.validation.constraints.Size,无需创建自定义注解即可实现这一点
然而,正如theprogrammer所指出的,像
" "
这样的空白字符串被认为是有效的,而@NotBlank
的情况并非如此。wmvff8tz5#
最好的方法是创建自己的约束验证器,
dsekswqp6#
你试过Hibernate-Validator吗?我想这就是你要找的。