SpringBoot参数校验和处理

springboot 注解实现参数的基础校验
功能实现
实体类加入@Min和@Max注解实现参数范围

	@Min(value=-180)
	@Max(value=180)
    private Double x;
    
	@Min(value=-90)
	@Max(value=90)
    private Double y;

    /**
     * 相机的z坐标 z
     */
	@NotNull
    private Double z;

web接口层实现
接口参数加入@Vaild注解

@RequestMapping("/update")
	public Result<String> update(@RequestBody @Valid HistoricSite historicSite,
			BindingResult bindingResult) {
		
		if (bindingResult.hasErrors()) {
			List<ObjectError> errorList = bindingResult.getAllErrors();
			if (errorList != null && errorList.size() > 0) {
				Result<String> result ==ResultUtil.failure2(errorList.get(0).getDefaultMessage());
				return result;
			}
		}
		//修改提交
		//historicSiteService.update(historicSite);
		//Result<String> result = ResultUtil.success("修改数据成功");
		return result;
	}

请求结果
参数x范围为-180到180,超出范围抛出异常
在这里插入图片描述
在这里插入图片描述
记录一些常用的校验注解

注解验证的数据类型说明
@AssertFalse/@AssertTrueBoolean验证注解的元素值是false/true
@NotNull /@Null任意验证注解的元素值不是空/是空
@Min/@DecimalMin(value=值)任何Number类型等验证注解的元素值大于等于value值
@Max/@DecimalMax(value=值)任何Number类型等验证注解的元素值小于等于value值
@Digits(integer=整数位数, fraction=小数位数)任何Number类型等验证注解的元素值的整数位数和小数位数上限
@Size(min=下限, max=上限)字符串、Collection、Map、数组等验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小
@Past /@FutureDate、Calendar、Time类库的日期类型等验证注解的元素值(日期类型)比当前时间早/晚
@NotBlankCharSequence子类型验证注解的元素值不为空(应用于字符串且在比较时会去除字符串的首位空格)
@Length(min=下限, max=上限)CharSequence子类型验证注解的元素值长度在min和max区间内
@NotEmptyCharSequence子类型、Collection、Map、数组验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@Range(min=最小值, max=最大值)BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型验证注解的元素值在最小值和最大值之间
@Email(regexp=正则表达式,flag=标志的模式)String、任何CharSequence的子类型验证注解的元素值与指定的正则表达式匹配
@Pattern(regexp=正则表达式,flag=标志的模式)String,任何CharSequence的子类型验证注解的元素值与指定的正则表达式匹配
@Valid任何非原子类型指定递归验证关联的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值