Java / Spring MVC 3 validation of an email address

后端 未结 4 457
野的像风
野的像风 2021-02-05 05:54

I have a Java backend with Spring MVC and I am using validation in this way on my domain object for an email address:

import javax.validation.constraints.NotNull         


        
相关标签:
4条回答
  • 2021-02-05 06:43

    If you use Hibernate Validator you can use @Email annotation Anyway you can create your custom contraint annotation and set a custom message to show in your resource properties file.

    0 讨论(0)
  • 2021-02-05 06:43

    You can use @Email from Hibernate Validator:

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.4.1.Final</version>
        </dependency>
    
    0 讨论(0)
  • 2021-02-05 06:48

    Your regex has a couple of instances of '+' in it, which is kind of odd. e-mail addresses aren't usually required to have single quotes in them :) I think perhaps that is meant to be concatenating pieces of the String, and those should be double quotes?

    For defining your own message, you just add message="{someWay.of.definingCodes}" to the annotation. Then define a translation for it in ValidationMessages.properties in the default package.

    Alternately hibernate validator provides org.hibernate.validator.Email if you're willing to depend on a vendor extension.

    0 讨论(0)
  • 2021-02-05 07:00

    First try simpler regex such as this:

    "\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b"
    

    Than you can try RFC 2822 version:

    "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"
    

    Let me know if the either worked for you.

    Also take look at this package

    org.springmodules.validation.bean.conf.loader.annotation.handler
    

    here
    http://www.springbyexample.org/examples/spring-modules-validation-module.html

    It might be better alternative.

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