Spring电子邮件表单验证

时间:2013-02-07 17:30:11

标签: spring spring-mvc

我即将在Spring 3.1中设置表单验证。我正在使用Annotations来验证我的模型,如下所示:

型号:

@Column(name = "mailAddress", nullable = false)
@Email
private String mailAddress;

@Column(name = "school", nullable = false)
@NotBlank
@Size(min = 3, max = 100)
private String school;

控制器:

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addBooking(
            @ModelAttribute("new-booking") @Valid Booking booking,
            BindingResult result, Map<String, Object> model) {

        if (result.hasErrors()) {
            return "booking";
        }
            return "success";
     }

问题是,它验证school但不验证mailAddress。如果您输入空mailAddress,则会接受它。

2 个答案:

答案 0 :(得分:2)

我认为可能你的验证问题可能与使用@Email验证注释你的验证器有效的事实有关,也就是有效的电子邮件形式如:“myname @ service”并不以扩展名结尾(如例如).com

如果这是您的问题......这是正常的,因为它还考虑了您的电子邮件具有以下格式:yourname @ localhost(内部电子邮件地址)

如果要验证经典电子邮件(格式为:myname@someservice.com),我认为您必须编写自定义验证器。

我希望我理解你的问题

答案 1 :(得分:0)

我找到了问题。电子邮件验证程序将接受空白电子邮件。要解决此问题,您只需向其添加@NotBlank即可。实际上我认为可以为nullable = false,但不是。

@Column(name = "mailAddress", nullable = false)
@Email
@NotBlank
private String mailAddress;
相关问题