javax.validation验证值列表?
有没有一种方法可以使用javax.validation来验证一个名为color的字符串类型的变量,该变量只需要使用注释来具有这些值(红色、蓝色、绿色、粉色) 我见过javax.validation验证值列表?,java,spring,validation,javax,Java,Spring,Validation,Javax,有没有一种方法可以使用javax.validation来验证一个名为color的字符串类型的变量,该变量只需要使用注释来具有这些值(红色、蓝色、绿色、粉色) 我见过@size(最小值=1,最大值=25)和@notnull,但是在(红色、蓝色、绿色、粉色) 与mysql中使用的关键字中的或多或少类似,您可以创建自定义验证注释。我将在这里编写它(未经测试的代码!): @Target({方法、字段、注释\类型、构造函数、参数}) @保留(运行时) @记录 @约束(validatedBy=InConst
@size(最小值=1,最大值=25)
和@notnull
,但是在(红色、蓝色、绿色、粉色)
与mysql中使用的关键字
中的或多或少类似,您可以创建自定义验证注释。我将在这里编写它(未经测试的代码!):
@Target({方法、字段、注释\类型、构造函数、参数})
@保留(运行时)
@记录
@约束(validatedBy=InConstraintValidator.class)
中的public@接口
{
String message()默认值为“YOURPACKAGE.In.message}”;
类[]组()默认值{};
类在这种情况下,我认为使用@Pattern注释会更简单,如下面的代码段。如果需要不区分大小写的求值,只需添加相应的标志:
@Pattern(regexp=“red | blue | green | pink”,flags=Pattern.Flag.不区分大小写)
您可以创建枚举
public enum Colors {
RED, PINK, YELLOW
}
然后在您的模型中,您可以这样验证它:
public class Model {
@Enumerated(EnumType.STRING)
private Colors color;
}
这将根据枚举验证您的负载,因为您已经添加了
@有效的
在RestController中。您可以自己创建验证类。供参考Hi。我猜使用javax验证器是不可能的?我想我可以在表/数据库级别上创建一个约束?在尝试验证字符列表时很有用,但不能将“值”定义为对象数组。编译器出现以下错误:“.values中注释属性的类型对象[]无效;只允许使用基元类型、字符串、类、注释、枚举或其一维数组,我不这么认为@枚举的是javax.persistence注释,而不是javax.validation注释。如果红色-蓝色等是常量,该怎么办?
public class Model {
@Enumerated(EnumType.STRING)
private Colors color;
}