Java @Validated入门级使用(小白必看)
程序员文章站
2022-03-29 09:13:26
...
- 添加引用
<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>
配套版本:
- validation-api 1.1.0.Final + hibernate-validator 5.3.6.Final
- 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;
}
}