Sping @Validated注解 校验Controller参数

使用@Validated注解校验请求参数

一、Controller中方法中的参数列表校验

  1. Controller开启Validated校验
@RestController
@RequestMapping("/test")
@Validated
public class TestController{
  1. 方法上直接校验参数
@GetMapping(value = "/method/{type}")
    public ResponseModel test(
    	@Pattern(regexp = "[1,2]",message = "类型只能为1或2")@PathVariable(value = "type")String types,
		@NotBlank(message="内容不能为空")String content,
        @Length(max = 64,message = "长度最大为64")String title,
        @NotEmpty(message = "集合不能为空")List<String> ids,
        @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号格式有误") @NotBlank String mobile,
        @Max(value = 100,message = "最大值为100") @Min(value = 1,message = "最小值为1")Integer intValue) {

二、Controller中方法中的对象参数校验

  1. controller方法中接收对象参数
public ResponseModel test(@RequestBody @Validated Bean beanBo)
  1. Bean中使用import javax.validation.constraints.*校验一系列参数
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;

/**
 * @Description 
 * @Author wangzhijun
 * @Class com.wzj.Bo.BeanBo
 * @date 20/9/14 上午10:47
 */
@Data
public class BeanBo {

	/**
    * 此处使用list接收JSON类型参数为数组的情况
    * {
    * "boList":{
    * 	[
    * 		"str1": "val1",
    * 		"str2": "val2"
    * 		.....
    * 	],[
    * 		"str1": "val1",
    * 		"str2": "val2"
    * 		.....
    * 	]
    * 	.....
    * }
    * }
    */
    //此处 如果不增加@Valid 注解,则内部类的属性不会开启校验
    @NotEmpty(message = "列表不能为空")
    @Valid
    List<Bo> boList;
    
    @NotBlank(message="内容不能为空")
    @Size(max = 64,message = "内容字符数超出限制")
    private String str3;
    

    @Data
    public static class Bo{
        
        @NotBlank(message="不能为空")
        private String str1;

        @NotBlank(message="不能为空")
        @Size(max = 64,message = "内容字符数超出限制")
        private String str2;

		//此处 如果不增加@Valid 注解,则内部类的属性不会开启校验
        @NotEmpty(message = "人员信息不能为空")
        @Valid
        private List<MemberInfos> audienceInfoList;//二级数组

    }

    @Data
    public static class MemberInfos{

        @NotBlank(message = "请选择有效的用户")
        private String id;
        
        @Pattern(regexp = "[男|女]",message = "请输入正确的性别")
        @NotBlank(message = "请输入正确的性别")
        private String sex;
    }

}
未完待续。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值