spring-boot:确保提交的值是一组给定的有效选项之一



在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);
}

相关内容

最新更新