SSM整合之分组校验

上接上篇博客

需求

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值