我正在使用Hibernate验证程序在Web应用程序中进行表单验证。我将@Length注释用于我的String属性,如下所示:
@Length(min = 5, message = "The field must be at least 5 characters") private String myString;
但是,如果String超过50个字符,则需要显示其他消息。有没有办法使用现成的@Length验证程序来执行此操作?我想做的一个例子(编译器不会让我)如下:
@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,但它们并没有执行我想要的操作。任何投入将不胜感激!
您可以@Length使用内部列表注释(在Bean验证/休眠验证器中为每种约束类型定义的)在一个元素上指定多个约束,如下所示:
@Length
@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;
顺便说一句。由于可移植性的原因,我建议更喜欢Bean Validation API定义的@Size@Length。