服务端校验: 控制层controller: 校验页面请求的参数的合法性。在服务端控制层controller校验,不区分客户端类型(浏览器、手机客户端、远程调用)。 业务层service:主要校验关键业务参数,仅限于service接口中使用的参数。 持久层dao:一般是不校验的。
springmvc使用hibernate的校验框架validation。 校验思路: 页面提交请求的参数,请求到controller方法中,使用validation进行校验,如果校验出错,将错误信息展示给页面。
public class Items{ @Size(min=1,max=30,message="{错误信息,配置在专门的文件中}") private String name; @NotNull(message="错误信息,配置在专门的文件中") private Date createtime; }
//在需要校验的pojo前面添加@Validated注解,在需要校验的pojo后面添加BindingResult bindingResult接受校验出错信息 //注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序一致。 @RequestMapping("/editItemsSubmit") public String editItemsSubmit( HttpServletRequest request, @Validated ItemsCustom itemsCustom, BindingResult bindingResult)throws Exception{...}
分组校验: 1、为校验分配分组 //ValidGroup.class是一个接口,该接口不需要声明任何方法,知识对不同的校验规则进行分组 @Size(min=1,max=30,message="{错误信息,配置在专门的文件中}",group={ValidGroup.class}) 2、为controller指定是用哪一个分组校验 public String editItemsSubmit( HttpServletRequest request, @Validated(value={ValidGroup.class}) ItemsCustom itemsCustom, BindingResult bindingResult)throws Exception{...}