我在我的网络应用程序中使用 Hibernate validator 进行表单验证。我正在为我的 String 属性使用@Length 注释,如下所示:
@Length(min = 5, message = "The field must be at least 5 characters")
private String myString;
但是,如果字符串超过 50 个字符,我需要显示不同的消息。有没有办法使用开箱即用的@Length validator 来做到这一点?我想做的一个例子(编译器不会让我这样做)如下:
@Length(min = 5, message = "The field must be at least 5 characters")
@Length(max = 50, message = "The field must be less than 50 characters")
private String myString;
我尝试过@Max 和@Min,但它们并没有按照我的意愿行事。任何意见将不胜感激!
最佳答案
您可以使用内部list annotation 在一个元素上指定多个@Length
约束。 (在 Bean Validation/Hibernate Validator 中为每个约束类型定义)如下:
@List({
@Length(min = 5, message = "The field must be at least 5 characters"),
@Length(max = 50, message = "The field must be less than 50 characters")
})
private String myString;
顺便说一句。我建议更喜欢 @Size出于可移植性原因,由 Bean Validation API 在 @Length
上定义。
关于java - Hibernate Validator - @Length - 如何为最小值和最大值指定单独的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084706/