2012-06-19 3 views
0
 
validation-api-1.0.0.GA.jar and hibernate-validator-4.1.0.Final.jar are in classpath. 


mvc:annotation-driven is in -servlet.xml file. 

@RequestMapping(value = "/addEmployee", method = RequestMethod.POST) public ModelAndView addEmployee(@Valid EmployeeDTO employeeDTO, BindingResult result) {JSR-303 валидация не работает в Spring MVC 3.x

System.out.println("addEmployee employeeDTO! "+ employeeDTO); 
     System.out.println("result.getErrorCount() "+result.getErrorCount()); 

}

public class EmployeeDTO {

private int employeeId; 
public int getEmployeeId() { 
    return employeeId; 
} 


public void setEmployeeId(int employeeId) { 
    this.employeeId = employeeId; 
} 

@NotNull 
private String firstName; 
@NotNull 
private String lastName; 
private Date hireDate; 

} 

in the console 

addEmployee employeeDTO! EmployeeDTO [employeeId=0, firstName=, lastName=, deptName=null, deptId=0, email=, salary=0, jobId=AD_VP, hireDate=null] 
result.getErrorCount() 0 

ответ

0

DTO не кажется недействительными, в соответствии с сообщением консоли, что вы цитируемой , Поля firstName и lastName, по-видимому, заданы как пустые строки "", а не null; поэтому нет оснований для подтверждения отклонения вашего компонента.

Если вы хотите, чтобы пустые поля ввода были привязаны как NULL (и отклонено путем проверки), вы можете зарегистрировать StringTrimmerEditor в своем связующем.

+0

теперь его working.but, когда в сочетании с пользовательскими валидаций с JSR-303 валидаций в контроллере затем JSR-303 валидация не работают. @ InitBinder защищен недействительным initBinder (WebDataBinder связующий) {binder.registerCustomEditor (String.class, новый StringTrimmerEditor (правда)); binder.setValidator (новый EmailValidator());} – user739115

Смежные вопросы