栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot数据校验

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot数据校验

数据校验是一个相当重要的环节,使用Spring Boot 进行数据校验。

添加校验依赖

全部依赖文件如下



    4.0.0
    
 org.springframework.boot
 spring-boot-starter-parent
 2.3.1.RELEASE
  
    
    com.example
    demo
    0.0.1-SNAPSHOT
    demo
    Demo project for Spring Boot

    
 1.8
    

    
 
     org.springframework.boot
     spring-boot-starter-validation
 
 
     org.springframework.boot
     spring-boot-starter-web
 

 
     org.springframework.boot
     spring-boot-starter-test
     test
     
  
      org.junit.vintage
      junit-vintage-engine
  
     
 
    

    
 
     
  org.springframework.boot
  spring-boot-maven-plugin
     
 
    



添加配置文件
user:
  name:
    size: 用户名长度不符合要求
  age:
    size: 年龄输入不正确

添加数据校验
package com.example.demo;

import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Size;

public class User {
    private Integer id;
    // 其长度
    @Size(min = 5, max = 10, message = "{user.name.size}")
    private String name;
    // 其上限和下限
    @DecimalMax(value = "200", message = "{user.age.size}")
    @DecimalMin(value = "5", message = "{user.age.size}")
    private Integer age;
	// 省去get和set
}

编写控制器
package com.example.demo;

import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class UserController {
    @PostMapping("/user")
    public List addUser(@Validated User user, BindingResult bindingResult){
 List errors = new ArrayList<>();
 // 非空
 if(bindingResult.hasErrors()){
     // 查找出Error 进行添加到结果集
     List allErrors = bindingResult.getAllErrors();
     for (ObjectError allError : allErrors) {
  errors.add(allError.getDefaultMessage());
     }
 }
 return errors;
    }
}

其中BindingResult 类是用于保存错误信息的

测试

分组校验 添加分组接口

在实体类中添加分组信息
package com.example.demo;

import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Size;

public class User {
    private Integer id;
    // 其长度
    @Size(min = 5, max = 10, message = "用户名长度不符合要求", groups = ValidationGroup1.class)
    private String name;
    // 其上限和下限
    @DecimalMax(value = "200", message = "年龄输入不正确", groups = ValidationGroup2.class)
    @DecimalMin(value = "5", message = "年龄输入不正确", groups = ValidationGroup2.class)
    private Integer age;

    public Integer getId() {
 return id;
    }

    public void setId(Integer id) {
 this.id = id;
    }

    public String getName() {
 return name;
    }

    public void setName(String name) {
 this.name = name;
    }

    public Integer getAge() {
 return age;
    }

    public void setAge(Integer age) {
 this.age = age;
    }
}

控制器使用其分组
package com.example.demo;

import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class UserController {
    @PostMapping("/user")
    public List addUser(@Validated(ValidationGroup2.class) User user, BindingResult bindingResult){
 List errors = new ArrayList<>();
 // 非空
 if(bindingResult.hasErrors()){
     // 查找出Error 进行添加到结果集
     List allErrors = bindingResult.getAllErrors();
     for (ObjectError allError : allErrors) {
  errors.add(allError.getDefaultMessage());
     }
 }
 return errors;
    }
}

测试结果

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号