SSM整合之分组校验

来源:互联网 发布:号码归属地软件下载 编辑:程序博客网 时间:2024/06/05 19:13

上接上篇博客

需求

在pojo中定义校验规则,而pojo是被多个Controller所共用,当需要不同的Controller方法对同一个pojo进行校验,但是每个Controller的方法需要不同的校验规则

解决思路:
定义多个校验分组即可(是一个接口),在分组中定义不同的规则
每个Controller方法使用不同的校验规则

校验分组

package com.alex.ssm.controller.validation;/** * Created by Alex on 2017/6/29. * 校验分组1 */public interface ValidGroup1 {    //不需要定义任何方法,仅仅是对不同的校验规则进行分组    //此分组只校验商品名称的长度}


在校验规则中添加分组

    //校验名称:1-30字符之间    //message提示校验出错显示的信息    //groups:用于区别次校验属于哪个分组,groups可以定义多个分组    @Size(min = 1,max = 30,message = "{items.name.length.error}",groups = {ValidGroup1.class})

在Controller方法中使用分组校验

    //商品修改    //在需要校验的pojo前,添加@Validated,在需要校验的pojo后添加BindingResult bindingResult接收校验出错信息    //注意!!@Validated和BindingResult bindingResult 是配对出现的,并且在形参里的顺序是固定的(一前一后)    //value 指定使用ValidGroup1分组的校验规则    @RequestMapping("/editItemsSubmit")    public String editItemsSubmit(Model model, HttpServletRequest request, Integer id, @Validated(value = {ValidGroup1.class}) ItemsCustom itemsCustom , BindingResult bindingResult) throws Exception{

效果

即使违反多条校验规则,该Controller也只对其中一条分组校验进行显示

原创粉丝点击