欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java @Validated入门级使用(小白必看)

程序员文章站 2022-03-29 09:13:26
...
  1. 添加引用
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.16.Final</version>
</dependency>
<dependency>
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.3.0.Final</version>
</dependency>
<dependency>
    <groupId>com.fasterxml</groupId>
    <artifactId>classmate</artifactId>
    <version>1.3.3</version>
</dependency>

 

配套版本:

  1. validation-api 1.1.0.Final + hibernate-validator 5.3.6.Final
  2. validation-api 2.0.1.Final + hibernate-validator 6.0.16.Final

 

说明:以上引用都要加上,只加部分的话,将会导致验证不起作用,另外版本号要配套使用,否则在运行时会报错No validator could be found for constraint。

2、在实体类中添加注解判断

public class AgentDto {
    private String id ;//记录id

    @NotBlank(message = "手机号码不能为空")
    @Pattern(regexp = "\\d{0,11}", message = "请输入有效的手机号码")
    @ApiModelProperty(value = "手机号码")
    private String phone_num;//手机号码

}

注解类型有很多如:NotNull、NotEmpty....自行百度查询使用方法。

3、在Controller类的接口参数中添加@Validated注解描述

//添加@Validated注解,表示该参数需要进行验证
public String agentRegist(@Validated @RequestBody AgentDto agentDto, BindingResult a){
    
    //如果需要验证多个参数,则在每个参数后面添加一个BindingResult类型的参数即可
    //通过此方法判断验证器是否发生了错误,然后自行处理。
    if (a.hasErrors()){
        return xxxx;
    }

}