请求参数校验

我们在写http接口常常要对传递参数进行校验

1.PathVariable校验

@GetMapping("/path/{group:[a-zA-Z0-9_]+}/{userid}")
@ResponseBody
public String path(@PathVariable("group") String group, @PathVariable("userid") Integer userid) {
    return group + ":" + userid;
}

用法是:路径变量:正则表达式。当请求URI不满足正则表达式时,客户端将收到404错误码。不方便的地方是,不能通过捕获异常的方式,向前端返回统一的、自定义格式的响应参数。

2.Get路径参数校验

注意:要在类上打一个@Validated 标签才能生效

@GetMapping("/validate1")
@ResponseBody
public String validate2(
        @Size(min = 1,max = 10,message = "姓名长度必须为1到10")@RequestParam("name") String name,
        @Min(value = 10,message = "年龄最小为10")@Max(value = 100,message = "年龄最大为100") @RequestParam("age") Integer age) {
    return "validate1";
}

postman校验结果:
在这里插入图片描述
这里的validate2.name是方法的名字.属性

3.JavaBean接收

public class User {
    @Size(min = 1,max = 10,message = "姓名长度必须为1到10")
    private String name;

    @NotEmpty
    private String firstName;

    @Min(value = 10,message = "年龄最小为10")@Max(value = 100,message = "年龄最大为100")
    private Integer age;

    @Future
    //@Future表示未来的某一时间
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date birth;
    。。。
}

Controller:

@PostMapping("/validate2")
@ResponseBody
public User validate2(@Validated @RequestBody User user){
    return user;

}

4.@validated注解说明

空校验针对类型说明
@Nullr任何类型校验对象必须为空
@NotNull校验对象不为空校验对象不为空,不能校验字符串长度为0的对象
@NotBlank字符串只对字符串有效,校验字符串去掉前后空格后长度不为0
@NotEmpty字符串、集合、数组校验对象不能为空 (字符串长度不为0、集合大小不为0)
Boolean类型校验针对类型说明
@AssertTrue布尔校验boolean类型必须为true
@AssertFalse布尔校验boolean类型必须为false
日期校验针对类型说明
@Past日期类型校验必须是一个过去的日期
@Future日期类型校验必须是一个将来的日期
数值校验针对类型说明
@Min数字类型校验必须是一个数字,其值必须大于或等于指定的最小值
@Max数字类型校验必须是一个数字,其值必须小于或等于指定的最大值
@DecimalMax(value)数字类型校验必须是一个数字,其值必须大于或等于指定的最小值
@DecimalMax(value)数字类型校验必须是一个数字,其值必须小于或等于指定的最大值
@Digits(integer=,fraction=)数字类型校验必须是一个数字,interger指定整数精度,fraction指定小数精度
@Range(min =,max = )数字类型、字符串校验对象的值在min和max区间内
@Length(min =,max = )数字类型校验对象的值的长度在min和max区间内
@Size(min =,max = )数字类型校验对象的值在min和max区间内,如字符长度、集合大小
其他校验针对类型说明
@Email字符串校验对象的值必须是Email类型,也可以通过regexp和flag指定自定义的email格式
@Pattern字符串校验对象的值必须符合指定的正则表达式
@CreditCardNumber数字类型、字符串校验对象的值必须是信用卡类型
@URL字符串校验对象的值必须是URL地址
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值