首页 > 其他分享 >Springboot——参数校验

Springboot——参数校验

时间:2023-05-27 17:25:13浏览次数:36  
标签:username String 校验 id 参数 public Springboot

springboot参数校验注解

在controller层需要对前端传来的参数进行校验

校验简单数据类型

使用springboot自带的validation工具可以从后端对前端传来的数据进行校验

使用方法:

  1. 创建项目时引入I/O场景下的validation起步依赖
  2. 使用maven创建项目时,引入起步依赖:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
  1. 添加注解@Validated控制器开启参数校验功能
  2. 在参数前添加校验标准的注解,判断参数
注解 作用
@NotNull 判断包装类是否为null
@NotBlank 判断字符串是否为null或者是空串(去掉首位空格)
@NotEmpety 判断集合是否为空
@Length 判断字符的长度(最大或最小)
@Min 判断数值最小值
@Max 判断数值最大值
@Email 判断邮箱是否合法

例如:

    @RequestMapping("/t2")
    @ResponseBody
    public String t2(@NotBlank @Length(min = 1,max = 5) String username,
                     @NotNull @Min(0) @Max(50) Integer age,
                     @NotEmpty @RequestParam List<String> address,
                     @NotBlank @Email String email){
        System.out.println(username);
        System.out.println(age);
        System.out.println(address);
        System.out.println(email);
        return "请求成功";
    }

异常处理

当抛出ConstraintViolationException异常时,可以使用SpringMVC的异常处理器处理异常,也可以使用springboot的异常处理器。

springboot使用BasicErrorController来进行异常处理,当出现异常时,会跳转到resources/templates/error.html,只需要对error.html进行编辑就可以处理,当然后台还是会报异常的,如果需要详细的处理异常,那么就需要采用SpringMVC的异常处理器来处理了

校验对象类型参数

校验对象类型参数,实际是判断传来对象的属性

使用方法:

  1. 在对象属性前添加校验标准
  2. 在对象参数前添加注解@Validated,并将异常信息封装到BindingResult对象中

例如:

public class User {

    @NotBlank(message = "用户名不能为空")
    private String username;
    @NotNull(message = "id不能为空")
    private int id;

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", id=" + id +
                '}';
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}
    @RequestMapping("/t3")
    @ResponseBody
    public String t3(@Validated User user, BindingResult result){

        //判断是否有异常
        if (result.hasErrors()){
            List<ObjectError> list = result.getAllErrors();
            for (ObjectError err:list
                 ) {
                FieldError fieldError = (FieldError) err;
                System.out.println(fieldError.getDefaultMessage());
            }

            throw new RuntimeException("参数验证");
        }

        System.out.println(user);
        return "请求成功";
    }

注意:对对象参数进行校验时不需要给controller添加@Validated注解,只需要给对象参数添加注解就可以,校验标准应该添加在对象的属性中

标签:username,String,校验,id,参数,public,Springboot
From: https://www.cnblogs.com/sorrymine/p/17437016.html

相关文章

  • 对element Table表格中的el-input输入框输入的数值进行自定义校验
           参考:https://blog.csdn.net/weixin_48145150/article/details/125292650      https://blog.csdn.net/m0_59951344/article/details/119818786......
  • ASEMI代理长电可控硅BT136参数,BT136规格,BT136说明
    编辑-Z长电可控硅BT136参数:型号:BT136RMS通态电流IT(RMS):6A非重复浪涌峰值导通电流ITSM:25A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W存储接点温度范围Tstg:-40to+150℃工作接点温度范围Tj:-40to+125℃额定重复峰值关闭状态/反向电压VDRM,VRRM:600V额定重复峰值关断状态电流IDRM,IR......
  • ASEMI代理长电可控硅BT136参数,BT136规格,BT136说明
    编辑-Z长电可控硅BT136参数:型号:BT136RMS通态电流IT(RMS):6A非重复浪涌峰值导通电流ITSM:25A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W存储接点温度范围Tstg:-40to+150℃工作接点温度范围Tj:-40to+125℃额定重复峰值关闭状态/反向电压VDRM,VRRM:600V额定重复峰值关断状态......
  • Springboot+Guava实现单机令牌桶限流
    令牌桶算法系统会维护一个令牌(token)桶,以一个恒定的速度往桶里放入令牌(token),这时如果有请求进来想要被处理,则需要先从桶里获取一个令牌(token),当桶里没有令牌(token)可取时,则该请求将被拒绝服务。令牌桶算法通过控制桶的容量、发放令牌的速率,来达到对请求的限制。=================......
  • BT137-ASEMI双向可控硅BT134参数、尺寸、规格
    编辑:llBT137-ASEMI双向可控硅BT137参数、尺寸、规格型号:BT137品牌:ASEMI封装:TO-220特性:可控硅正向电流:8A反向耐压:600V引脚数量:3芯片个数:1包装方式:3000pcs/盘浪涌电流:40A 特点:双向可控硅工作温度:-40℃~150℃BT137应用:主要应用于调光、控温、马达控制BT137双向可控硅采用穿通隔离台面......
  • BT151-ASEMI单向可控硅BT151参数、尺寸、规格
    编辑:llBT151-ASEMI单向可控硅BT151参数、尺寸、规格型号:BT151品牌:ASEMI封装:TO-252正向电流:12A反向电压:650V引脚数量:3芯片个数:1芯片尺寸:漏电流:>10ua恢复时间: 浪涌电流:30A包装方式:盘装封装尺寸:如图特性:单向可控硅工作结温:-40℃~125℃BT151的电性参数:正向电流12A;反向电压650V......
  • Web 前端常用正则校验规则
    Web前端常用正则校验规则作为Web前端开发,常用的正则校验规则有很多。下面是一些常见的示例:校验手机号码手机号码的正则表达式可以根据不同国家和地区的手机号码格式进行调整。以下是中国大陆的手机号码正则表达式:constregex=/^1[3456789]\d{9}$/;在这个示例中,正则表......
  • BT151-ASEMI单向可控硅BT151参数、尺寸、规格
    编辑:llBT151-ASEMI单向可控硅BT151参数、尺寸、规格型号:BT151品牌:ASEMI封装:TO-252正向电流:12A反向电压:650V引脚数量:3芯片个数:1芯片尺寸:漏电流:>10ua恢复时间:浪涌电流:30A包装方式:盘装封装尺寸:如图特性:单向可控硅工作结温:-40℃~125℃BT151的电性参数:正向电流12A;反向......
  • 位置参数和关键字参数
    位置参数:括号中依次填入的变量名位置参数:括号中依次填入的变量名位置形参:在定义阶段,括号中从左到右依次填入的变量名位置形参:在定义阶段,括号中从左往右依次填入的变量名位置实参:在调用阶段,括号中从左往右依次传入的数据值位置实参:在调用阶段,括号中从左到右依次依次转......
  • BT137-ASEMI双向可控硅BT134参数、尺寸、规格
    编辑:llBT137-ASEMI双向可控硅BT134参数、尺寸、规格型号:BT137品牌:ASEMI封装:TO-220特性:可控硅正向电流:8A反向耐压:600V引脚数量:3芯片个数:1包装方式:3000pcs/盘浪涌电流:40A特点:双向可控硅工作温度:-40℃~150℃BT137应用:主要应用于调光、控温、马达控制BT137双向可控硅......