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

问题描述 投票:2回答:3

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

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


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

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

java bean-validation
3个回答
1
投票

您可以使用@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>

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()```


-1
投票

使用@Valid批注对字段进行批注,以验证集合中的元素。

 @NotEmpty 
 @NotBlank
 @Valid
 public List<String> getDescriptions() 
© www.soinside.com 2019 - 2024. All rights reserved.