后端校验-自定义 校验成功返回数据设置

前端页面在输入框设置了表单校验,我们输入时会有数据限制只能输入一些符合前端校验规则的数据。但是如果用postman向后端发送请求 数据没有限制规则。所以需要在后端也设置上一些校验规则。 其实本人觉得像什么不能为空不能为空字符串 在数据库创建表创建字段时可以设置上notnull,是吧这样也不会说存进数据。不同字段设置的字段类型不同,不为空类型不对也存不进去,个人感觉数据库完全可以完成此项任务。

但是校验也有好处,它可以告知你哪个字段出的问题。很直观的就能发现问题所在。

1.

<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <version>2.0.1</version>
</dependency>

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.17.Final</version>
    <scope>compile</scope>
</dependency>

这两个依赖包必须要有的,一般springboot就包含了jakarta.validation-api 包所以可以不添加这个依赖。在springboot2.3.2.RELEASE后 @NotBlank等校验注解会失效,所以手动需要引入hibernate-validator 这个依赖包。

2. 开始校验----自定义返回结果

在实体类的某个属性上加上@NotBlank来检验这个属性。

然后在controller类里面的方法有添加方法或者修改方法 用到这个属性 ,在方法的参数里加@Valid注解。BindingResult 这个对象包含校验失败的结果,result.hasErrors() 表示请求是否失败如果失败为true,result.getFieldErrors()表示获取到校验的错误结果,用forEach 方法拿到里面的错误信息,item.getDefaultMessage() 表示获取到错误结果的错误信息,这个错误信息是@NotBlank(message = "品牌名不能为空")  message信息。item.getField() 表示获取错误结果中产生错误的字段或者说属性。  然后将错误信息 和错误属性封装到map里面 返回给发送请求的客户端

实际返回效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值