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

SpringBoot 2.6教程:4.SpringBoot + validation参数校验-2022年最新图文版本

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

SpringBoot 2.6教程:4.SpringBoot + validation参数校验-2022年最新图文版本

SpringBoot 2.6 系列2022年最新图文版本:1.SpringBoot Web项目入门搭建

SpringBoot 2.6 系列2022年最新图文版本:2.SpringBoot + Mysql 项目搭建

SpringBoot 2.6 系列2022年最新图文版本:3.SpringBoot + Redis 项目搭建

SpringBoot 2.6 系列2022年最新图文版本:4.SpringBoot + validation参数校验

本章主要目标:

学习使用SpringBoot参数校验。本章接上一章SpringBoot Web 项目,如不会的可以点击查看:SpringBoot 2.6 系列2022年最新图文版本:1.SpringBoot Web项目入门搭建。

下面我们开始进行搭建系统。

一、新建项目 web-validation

二、修改pom文件,添加validation

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


        org.springframework.boot
        spring-boot-starter-validation
三、新建controller.UserController
import com.duoduo.webvalidation.controller.form.UserForm;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;


@RestController
public class UserController {
    @PutMapping("user/createUser")
    public String createUser(@Validated @RequestBody UserForm userForm) {
        return userForm.toString();
    }
}
四、新建请求实体类contorller.form.UserForm

public class UserForm {
    @NotNull(message = "请输入用户名")
    @Pattern(regexp = "^.{2,5}", message = "用户名格式不正确")
    public String userName;
    @NotNull(message = "请输入手机号")
    @Pattern(regexp = "^\d{11}$", message = "手机号格式不正确")
    public String phone;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}
五、验证测试

PUT http://localhost:8080/user/creatUser

错误日志:

2022-06-04 16:10:10.522  WARN 17845 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public java.lang.String com.duoduo.webvalidation.controller.UserController.createUser(com.duoduo.webvalidation.controller.form.UserForm): [Field error in object 'userForm' on field 'phone': rejected value [183000000]; codes [Pattern.userForm.phone,Pattern.phone,Pattern.java.lang.String,Pattern]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [userForm.phone,phone]; arguments []; default message [phone],[Ljavax.validation.constraints.Pattern$Flag;@1353004b,^d{11}$]; default message [手机号格式不正确]] ]
六、参数验证常用注解
       注解验证的数据类型备注                            
 Null  任意类型 参数值必须是 Null
 NotNull  任意类型 参数值必须不是 Null
 NotBlank  只能作用于字符串

 字符串不能为 null,而且字符串长度必须大于0,至少包含一个非空字符串

 NotEmpty  

 CharSequence

 Collection

 Map

 Array 

 字符串:字符串长度必须大于0,空字符串(“ ”)可以通过校验;

 Collection:集合大小必须大于0;

 Map:map的大小必须大于0;

 Array:数组长度必须大于0;

 Size 

 CharSequence

 Collection

 Map

 Array 

 同 NotEmpty
 Range

 数字类型

 字符串类型

 数值或者字符串的值必须在 min 和 max 指定的范围内
 Length 字符串类型 字符串的长度在min 和  max 之间
 Pattern 字符串类型  验证字符串是否符合正则表达式
 Min 整型类型  参数值必须大于等于 最小值
 Max 整型类型  参数值必须小于等于 最大值
 DecimalMin 整型类型   参数值必须大于等于 最小值 
 DecimalMax 整型类型   参数值必须小于等于 最大值 
 AssertTrue 布尔类型  参数值必须为 true
 AssertFalse 布尔类型   参数值必须为 false 
 Past 时间类型  参数值必须小于 当前时间
 Future 时间类型  参数值必须大于 当前时间
七、正则表达式

常用:

.*代表任意字符

?代表0-1次

+代表1-N次

^$代表开始结束

|代表或

[]代表字符集任意,[a-z]、[abc]

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

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

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