您的位置:首页 > 编程语言 > Java开发

SSM整合之分组校验

2017-06-29 18:54 337 查看
上接上篇博客

需求

在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也只对其中一条分组校验进行显示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息