摘要:添加依赖,如果使用了,则不需要引用任何依赖,因为包中已经包含了依赖在类的属性上加上对应的注解核查结果中文不能为空检查结果中文级联校验不能超过个嫌疑人集合被注释的元素必须为被注释的元素必须不为被注释的元素必须为被注释的元素必须为被
1.添加 Hibernate-Validator 依赖,如果使用了springboot,则不需要引用任何依赖,因为spring-boot-starter-web包中已经包含了Hibernate-Validator 依赖
</>复制代码
org.hibernate
hibernate-validator
6.0.7.Final
2.在Vo类的属性上加上对应的注解
</>复制代码
import javax.validation.constraints.NotBlank;
public class FeedbackVo {
@NotBlank(message = "核查结果中文不能为空")
@ApiModelProperty(value="检查结果中文")
private String cresults;
@Valid //级联校验
@Size(max = 2,message = "不能超过12个")
@ApiModelProperty(value="嫌疑人(集合)")
private List suspects = new ArrayList<>();
get/set...
}
</>复制代码
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式
Hibernate Validator 附加的 constraint
@NotBlank(message =) 验证字符串非null,且长度必须大于0
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内
3.在Controller中加上注解
</>复制代码
@RestController
@Validated
@RequestMapping(path="/api/v1/feedback")
@Api(value="阶段反馈controller",tags={"阶段反馈操作接口"})
public class FeedBackController {
@ApiOperation(value="保存阶段反馈")
@PostMapping
@SystemControllerLog(descrption="保存阶段反馈",operator=OperatorType.create)
@ResponseStatus(code=HttpStatus.CREATED)
public void addFeedback(@Validated(value = Groups.Add.class)@RequestBody @Valid FeedbackVo feedbackVo, BindingResult bindingResult) throws Exception {
// 参数校验
if (bindingResult.hasErrors()) {
String messages = bindingResult.getAllErrors()
.stream()
.map(ObjectError::getDefaultMessage)
.reduce((m1, m2) -> m1 + ";" + m2)
.orElse("参数输入有误!");
throw new IllegalArgumentException(messages);}
feedBackService.saveFeedback(feedbackVo);
}
}
</>复制代码
对BindingResult的深入解析:如果在使用接口返回信息的时候,可以直接拿到bindingResult中的错误信息
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75451.html
摘要:在开发服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而提供了一些常用的参数校验注解,我们可以拿来使用。 在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而hibernate-validator提供了一些常用的参数校验注解,我们可以拿来使用。1.maven中引入hibernate-validator对应的jar: org.hibernate ...
摘要:代码地址简介是项目中的一个数据校验框架,是的参考实现,除了提供了规范中所有内置的实现,还有一些附加的。使用能够将数据校验从业务代码中脱离出来,增加代码可读性,同时也让数据校验变得更加方便简单。 代码地址 https://github.com/wheel-orga... 简介 hibernate-validator是Hibernate项目中的一个数据校验框架,是Bean Validati...
摘要:所以就有今天的话题利用注解对进行校验。利用注解对进行校验,主要是利用框架,实现了的接口关于校验的接口,直接使用非常方便,省时省力。 最近写业务代码,因为页面复杂,导致对应的Bean属性非常多,而产品大佬又提出各种校验要求。 emmmmmm......如果写if条件来校验,那简直是又臭又长。 所以就有今天的话题——利用注解对Bean进行校验。 利用注解对Bean进行校验,主要是利用hib...
摘要:时间年月日星期三说明使用规范校验接口请求参数源码第一章理论简介背景介绍如今互联网项目都采用接口形式进行开发。该规范定义了一个元数据模型,默认的元数据来源是注解。 时间:2017年11月08日星期三说明:使用JSR303规范校验http接口请求参数 源码:https://github.com/zccodere/s... 第一章:理论简介 1-1 背景介绍 如今互联网项目都采用HTTP接口...
阅读 3920·2021-09-06 15:00
阅读 2220·2019-08-30 15:53
阅读 3330·2019-08-23 16:44
阅读 985·2019-08-23 15:19
阅读 1445·2019-08-23 12:27
阅读 4246·2019-08-23 11:30
阅读 643·2019-08-23 10:33
阅读 411·2019-08-22 16:05
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要