在PHP/Symfony框架中,如果请求值是一组值之一,我们可以使用以下链接中所述的Choice约束来验证请求值:
https://symfony.com/doc/current/reference/constraints/Choice.html
例如,我想测试category_id是否为以下值之一:[1,2,3,4]。 有没有办法在 spring-boot 中进行这种验证?
这个问题适合于更简单的核心Java实现。这肯定可以用enum
更好地解决,但如果你宁愿使用验证库,那么休眠验证器更适合这种情况。
示例字段声明:
@Range(min = 1, max = 4)
int category_id;
https://hibernate.org/validator/
我找到了我的问题的解决方案,我必须创建一个用@AssertTrue注释的函数,并检查是否允许从 allowedValues 数组提交该值 喜欢这个:
int[] allowedValues = {1,2,3,4};
@AssertTrue
public boolean isValidType() {
return IntStream.of(allowedValues).anyMatch(x -> x == this.typeId);
}