1、依赖选择。
1.1非spring boot项目
依赖选择
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.13.Final</version>
        </dependency>
注意单独引用validation-api不生效,需配合hibernate-validator使用,而hibernate-validator已经内嵌jakarta.validation-api所以使用hibernate-validator即可。
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
        </dependency>
或
      <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
1.2 spring boot项目
在springboot 2.3之前,spring-boot-starter-web包里面有hibernate-validator包。springboot 2.3之后spring-boot-starter-web包不再包含hibernate-validator包。
        <!-- springboot 2.3之后消失的hibernate-validator解决方法-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
2使用
controller的请求参数bean的字段
 /**
     * id
     */
    @NotBlank(message = "用户 id 不可为空。")
    private String id;
    /**
     * 姓名
     */
    @NotNull(message = "用户姓名不可为空。")
    private String name;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 手机
     */
    private String phone;
controller中需要判断的bean前需要加@Valid注解。
public ResponseBaseVO getUserList(@Valid UserVo userVo, BindingResult bindingResult){
        ResponseBaseVO result = ResponseBaseVO.ok();
        if (bindingResult.hasErrors()) {
            result.setCode(ResponseBaseVO.ERROR_CODE);
            result.setMessage(bindingResult.getFieldError().getDefaultMessage());
        }
        return result;
    }
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号