资讯专栏INFORMATION COLUMN

Hibernate-Validator 验证参数

myeveryheart / 1946人阅读

摘要:添加依赖,如果使用了,则不需要引用任何依赖,因为包中已经包含了依赖在类的属性上加上对应的注解核查结果中文不能为空检查结果中文级联校验不能超过个嫌疑人集合被注释的元素必须为被注释的元素必须不为被注释的元素必须为被注释的元素必须为被

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-Validation进行参数验证

    摘要:在开发服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而提供了一些常用的参数校验注解,我们可以拿来使用。 在开发JAVA服务器端代码时,我们会遇到对外部传来的参数合法性进行验证,而hibernate-validator提供了一些常用的参数校验注解,我们可以拿来使用。1.maven中引入hibernate-validator对应的jar: org.hibernate ...

    Coly 评论0 收藏0
  • Hibernate Validator—更简洁的参数校验及一个util

    摘要:代码地址简介是项目中的一个数据校验框架,是的参考实现,除了提供了规范中所有内置的实现,还有一些附加的。使用能够将数据校验从业务代码中脱离出来,增加代码可读性,同时也让数据校验变得更加方便简单。 代码地址 https://github.com/wheel-orga... 简介 hibernate-validator是Hibernate项目中的一个数据校验框架,是Bean Validati...

    Jiavan 评论0 收藏0
  • 利用注解对Bean进行校验

    摘要:所以就有今天的话题利用注解对进行校验。利用注解对进行校验,主要是利用框架,实现了的接口关于校验的接口,直接使用非常方便,省时省力。 最近写业务代码,因为页面复杂,导致对应的Bean属性非常多,而产品大佬又提出各种校验要求。 emmmmmm......如果写if条件来校验,那简直是又臭又长。 所以就有今天的话题——利用注解对Bean进行校验。 利用注解对Bean进行校验,主要是利用hib...

    dmlllll 评论0 收藏0
  • 记录_使用JSR303规范进行数据校验

    摘要:时间年月日星期三说明使用规范校验接口请求参数源码第一章理论简介背景介绍如今互联网项目都采用接口形式进行开发。该规范定义了一个元数据模型,默认的元数据来源是注解。 时间:2017年11月08日星期三说明:使用JSR303规范校验http接口请求参数 源码:https://github.com/zccodere/s... 第一章:理论简介 1-1 背景介绍 如今互联网项目都采用HTTP接口...

    187J3X1 评论0 收藏0

发表评论

0条评论

myeveryheart

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<