1) 使用JSR 303验证标准
2) 加入hibernate validator验证框架
3) 在SpringMVC配置文件中增加<mvc:annotation-driven/>
4) 需要在bean的属性上增加对应验证的注解
5) 在目标方法bean类型的前面增加@Valid注解
是 Java 为 Bean 数据合法性校验提供的标准框架,它已经包含在 JavaEE 6.0 中 .
JSR 303 (Java Specification Requests意思是Java 规范提案)通过在 Bean 属性上标注
类似于 @NotNull、@Max 等标准的注解指定校验规则,并通过标准的验证接口对 Bean
进行验证
Hibernate Validator 是 JSR 303 的一个参考实现,除支持所有标准的校验注解外,它还 支持以下的扩展注解
hibernate-validator-5.0.0.CR2\dist
hibernate-validator-5.0.0.CR2\dist\lib\required (EL就不需要加了)
public class Employee {
private Integer id;
@NotEmpty private String lastName;
private String email; //1 male, 0 female private Integer gender;
private Department department;
//关于类型转换 @Past //被标注的日期必须是一个过去的日期 @DateTimeFormat(pattern=”yyyy-MM-dd”) private Date birthDay ;
@NumberFormat(pattern=”#,###,###.#”) private double salary ; } |
//添加员工 /** 增加@Valid注解,验证失败会报错。 * 严重: Servlet.service() for servlet springDispatcherServlet threw exception java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory; */ @RequestMapping(value=”/empAdd”,method=RequestMethod.POST) public String empAdd(@Valid Employee employee,BindingResult bindingResult){ System.out.println(“empAdd – employee=”+employee);
if(bindingResult.getErrorCount() > 0 ){ System.out.println(“类型转换出错误了“); List<FieldError> fieldErrors = bindingResult.getFieldErrors(); for(FieldError fieldError : fieldErrors){ System.out.println(fieldError.getField() + ” – ” + fieldError.getDefaultMessage()); } }
employeeDao.save(employee); return “redirect:/empList”; } |
拷贝hibernate-validator-5.0.0.CR2\dist\lib\required目录下的
el-api-2.2.jar、javax.el-2.2.4.jar、javax.el-api-2.2.4.jar
三个包到Tomcat/lib目录下,将原来的el-api.jar删除。重启tomcat6
@RequestMapping(value=”/empAdd”,method=RequestMethod.POST) public String empAdd(@Valid Employee employee,BindingResult bindingResult){ System.out.println(“empAdd – employee=”+employee);
if(bindingResult.getErrorCount() > 0 ){ System.out.println(“类型转换出错误了”); List<FieldError> fieldErrors = bindingResult.getFieldErrors(); for(FieldError fieldError : fieldErrors){ System.out.println(fieldError.getField() + ” – ” + fieldError.getDefaultMessage()); } map.put(“deptList”,departmentDao.getDepartments()); return “add”; // /WEB-INF/views/add.jsp } employeeDao.save(employee); return “redirect:/empList”; } |
原文链接:http://www.atguigu.com/jsfx/10157.html
原文:https://www.cnblogs.com/xiaobaizaixianzhong/p/14921631.html