我有一个字符串集合,现在我想确保不仅集合不是空的,而且该集合中的每个字符串都不包含空白输入。
@NotEmpty
public List<String> getDescriptions() // not empty collection
@NotEmpty @NotBlank
public List<String> getDescriptions() // NotBlank isn't applicable on collections
有没有办法将字符串包装到类中或创建自定义@NotBlankCollectionEntries?
您可以使用@NotBlank
的进一步实现扩展hibernate约束ConstraintValidator<NotBlank, List<String>>
。这在8.1.2. Overriding constraint definitions in XML中有描述。这个新的验证器可以与<constraint-definition>
文件中的XML元素META-INF/validation.xml连接到现有的内置验证器:
<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>
你可以使用这样的东西:
@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()```
使用@Valid批注对字段进行批注,以验证集合中的元素。
@NotEmpty
@NotBlank
@Valid
public List<String> getDescriptions()