Hibernate Validator - @Length - How to specify separate message for min and max?

后端 未结 3 567
庸人自扰
庸人自扰 2021-02-04 02:41

I am using Hibernate validator for form validation in my web-app. I am using the @Length annotation for my String attribute as follows:

@Length(min = 5, message         


        
相关标签:
3条回答
  • 2021-02-04 02:59

    You can specify several @Length constraints at one element by using the inner list annotation (which is defined for each constraint type in Bean Validation/Hibernate Validator) like this:

    @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;
    

    Btw. I recommend to prefer @Size as defined by the Bean Validation API over @Length for portability reasons.

    0 讨论(0)
  • 2021-02-04 03:01

    If you use the java standard javax.validation.constraint.Size, you can achieve the same thing this way:

    @Size.List ({
        @Size(min=8, message="The field must be at least {min} characters"),
        @Size(max=60, message="The field must be less than {max} characters")
    })
    private String myString;
    

    Notice that you can avoid hardcoding the field size by using message interpolation.

    0 讨论(0)
  • 2021-02-04 03:09

    According to documentation, you can use @Length(min=, max=), with one message. Then just change your message to "The field must be between 5 and 50 characters"

    0 讨论(0)
提交回复
热议问题