SpringBoot数据校验

SpringBoot-----SpringBoot数据校验

文章目录

  • ?? 一、简单数据类型
  • ?? 二、异常处理
  • ?? 三、校验相关注解
  • ?? 四、对象类型

在这里插入图片描述

?? 一、简单数据类型

SpringBoot校验简单数据类型参数,需要在类上方添加的注解是@Validated

SpringBoot自带了validation工具可以从后端对前端传来的参数进行校验,用法如下:

1、引入validation起步依赖
SpringBoot数据校验_第1张图片

2、编写Controller

SpringBoot数据校验_第2张图片
3、在校验参数的注解中添加message属性,可以替换异常信息。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

?? 二、异常处理

当SpringBoot项目抛出异常后,默认会跳转的页面是/resources/templates/error.html

??1、当抛出ConstraintViolationException异常后,我们可以使用SpringMVC的异常处理器,也可以使用SpringBoot自带的异常处理机制。

??2、当程序出现了异常,SpringBoot会使用自带的BasicErrorController对象处理异常。该处理器会默认跳转到/resources/templates/error.html页面

没有传入参数将会报错 ,Springboot默认访问/resources/templates/error.html页面
SpringBoot数据校验_第3张图片
在这里插入图片描述

?? 三、校验相关注解

|

注解

作用

@NotNull

判断包装类是否为null

@NotBlank

判断字符串是否为null或者是空串(去掉首尾空格)

@NotEmpty

判断集合是否为空

@Length

判断字符的长度(最大或者最小)

@Min

判断数值最小值

@Max

判断数值最大值

@Email

判断邮箱是否合法

SpringBoot数据校验_第4张图片

SpringBoot数据校验_第5张图片

在这里插入图片描述

?? 四、对象类型

SpringBoot也可以校验对象参数中的每个属性,用法如下:

步驟一 、创建一个学生类

package com.example.demo.wr.oyc.bean;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

public class Student {
    @NotNull(message = "id不能为空")
    private Integer id;
    @NotBlank(message = "姓名不能为空")
    private String name;
    // 省略getter/setter/tostring


    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;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Student{");
        sb.append("id=").append(id);
        sb.append(", name='").append(name).append(''');
        sb.append('}');
        return sb.toString();
    }
}

步骤二、创建Controller

SpringBoot数据校验_第6张图片

如果输入的网址为:http://localhost:8888/t3
SpringBoot数据校验_第7张图片
如果输入的网址为:http://localhost:8888/t3id=1&name=asdd
SpringBoot数据校验_第8张图片

在这里插入图片描述

脚踏实地,一步一步,总能成功

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

你可能感兴趣的:(面试,学习路线,阿里巴巴,android,前端,后端)