我有一个字符串集合,现在我想确保不仅集合不是空的,而且该集合中的每个字符串都不包含空白输入。
@NotEmpty
public List<String> getDescriptions() // not empty collection
@NotEmpty @NotBlank
public List<String> getDescriptions() // NotBlank isn't applicable on collections
有没有办法将字符串包装到类中或创建自定义@NotBlankCollectionEntries?
答案 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()