2013-02-07 3 views
0

Я собираюсь установить форму проверки в Spring 3.1. Я использую аннотации, чтобы проверить свою модель, как это:Spring Email Form Validation

Модель:

@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

@VarunAchar Вы совершенно правы. Кажется, я просто забыл об этом. Ред. – Robin

+0

Каков вклад в адрес электронной почты? Является ли это подтверждением для каждого случая или неудачей для каждого случая? –

ответ

0

Я нашел этот вопрос. Email Validator будет принимать пустые письма. Чтобы исправить это, вам нужно добавить только @NotBlank. На самом деле я думал, что nullable = false будет достаточно, но не было.

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

Я думаю, что, может быть, ваша проблема проверки может быть связана с тем фактом, что с помощью аннотации проверки @Email ваш валидатор сопрягался как действительный, также электронная почта, имеющая форму типа «myname @ service», которая не заканчивается расширением, например (например) .com

Если это ваша проблема ... это нормально, потому что это считается также тот случай, когда у вас есть электронная почта, имеющий следующий формат: вашеимя @ локальный (внутренний адрес электронной почты)

Если вы хотите проверить классическое электронное письмо (имеющее формат: [email protected]), я думаю, что вам нужно написать свой собственный валидатор.

Я надеюсь, что я понимаю, ваша проблема

+0

Спасибо, но он не будет проверять электронную почту вообще. Я могу оставить его пустым и ничего, что Controller не примет. – Robin