46、SpringBoot 输入校验--JSR 303

SpringBoot 输入校验–JSR 303


springboot支持两种校验方式:

1、Spring原生提供的 Validation,这种验证方式需要开发者手写验证代码,比较繁琐。就是普通的if判断

2、使用JSR 303的校验,这种验证方式只需使用注解、即可以声明式的方式进行验证,非常方便。


JSR 303校验的步骤:

1、添加依赖,然后为被校验字段添加JSR 303注解,通过这些注解指定校验规则。

2、为被校验的参数添加@Validated注解修饰,并【紧跟】一个Errors类型的参数,用于收集校验失败的错误提示。
处理方法中必须通过Errors参数来判断校验是否失败,校验失败就调回表单页面

3、在页面上使用th:errors属性来输出校验失败的错误提示。


我对于JSR 303 校验总结:

1、添加依赖
2、在domain的实体类上面,在要校验的字段上添加依赖提供的注解,比如 @Length 校验长度。
3、在controller方法的参数上,为要校验的参数添加 @Validated 注解 和 一个 Errors 类型的参数
4、前端用 th:errors 来接收输出校验失败的错误提示


基于 JSR 303 检验的代码演示:


需求:校验前端传来的name属性的值的长度。

1、先添加支持 JSR 303 校验的依赖
在这里插入图片描述

2、哪个参数要校验,就在哪个参数上面添加对应的注解
在 name 属性上面添加 @Length 注解进行长度校验
在这里插入图片描述

为被校验的参数添加@Validated注解修饰,并【紧跟】一个Errors类型的参数,用于收集校验失败的错误提示。
处理方法中必须通过Errors参数来判断校验是否失败,校验失败就调回表单页面

//@Validated Book book 表示book这个参数需要得到参数校验
//校验失败时,所有的错误信息应该都是放在 errors 参数中
//如果校验失败,就返回表单页面。不然的话代码还是会往下走。
在这里插入图片描述

在页面上使用th:errors属性来输出校验失败的错误提示。
因为是校验 name属性,所以这里的 th:errors 需要拿到name属性值,表示是输出检验name字段的错误提示。
在这里插入图片描述

测试结果:

检验不通过,返回index 页面。
注意点:这个 【长度需要再6-20之间】这个提示,是 @Length 注解提供的,是默认的国际化信息。
国际化信息就是这个页面是中文的,就提示中文,
如果页面是英文的,就用英语来提示。

在这里插入图片描述

如果要自定义提示信息,可以添加 message 属性。
在这里插入图片描述


演示Validation校验

Spring原生提供的 Validation,这种验证方式需要开发者手写验证代码,比较繁琐。

就是在程序中写代码输入校验。就是普通的 if 校验

在这里插入图片描述

前端一样用 th:errors 来接收错误信息
在这里插入图片描述

测试结果
成功:txt 无法上传,只能上传图片

然后我弄了一张10M的图片进行测试,结果程序直接崩溃。
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_L_J_H_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值