Bean验证字符串集合不是空白

时间:2014-11-11 08:17:19

标签: java bean-validation

我有一个字符串集合,现在我想确保不仅集合不是空的,而且该集合中的每个字符串都不包含空白输入。

 @NotEmpty
 public List<String> getDescriptions() // not empty collection


 @NotEmpty @NotBlank
 public List<String> getDescriptions() // NotBlank isn't applicable on collections 

有没有办法将字符串包装到类中或创建自定义@NotBlankCollectionEntries?

4 个答案:

答案 0 :(得分:1)

您可以使用@NotBlank的进一步实现来扩展休眠约束ConstraintValidator<NotBlank, List<String>>。这在8.1.2. Overriding constraint definitions in XML中有所描述。这个新的验证器可以与META-INF/validation.xml文件中的XML元素<constraint-definition>连接到现有的内置验证器:

<constraint-definition annotation="org.hibernate.validator.constraints.NotBlank">
    <validated-by include-existing-validators="true">
        <value>com.acme.app.constraint.NotBlankValidatorForStringList</value>
    </validated-by>
</constraint-definition>

答案 1 :(得分:1)

您可以使用类似这样的内容:

@NotNull
@Size(min = 1)
public List<@NotBlank @Size(max = 123) String> getDescriptions() // not empty collection


@NotNull
@Size(min = 1)
public List<@NotBlank @Size(max = 123)> getDescriptions()```

答案 2 :(得分:0)

@NotEmpty
public List<@NotBlank String> getDescriptions();

答案 3 :(得分:-1)

使用@Valid注释注释该字段以验证集合中的元素。

 @NotEmpty 
 @NotBlank
 @Valid
 public List<String> getDescriptions()