# validation-demo **Repository Path**: novots/validation-demo ## Basic Information - **Project Name**: validation-demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-03 - **Last Updated**: 2024-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # validation-demo #### 标注Web接口 基于springboot框架注解方式,标识web接口。 1. 以 **@RestController** 或者 **@Controller**标注在类上。 2. 在public函数上,标识接口的注解: 😀 ``` - org.springframework.web.bind.annotation.GetMapping - org.springframework.web.bind.annotation.PostMapping - org.springframework.web.bind.annotation.PutMapping - org.springframework.web.bind.annotation.DeleteMapping - org.springframework.web.bind.annotation.PatchMapping ``` #### 注解方式验证输入数据 javax的validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),已经经历了三个版本。JSR只是一项标准,它规定了一些校验注解的规范,但没有实现,比如@Null、@NotNull、@Pattern等,它们位于 javax.validation.constraints这个包下。 而hibernate validator是对这个规范的实现,并增加了一些其他校验注解,如 @NotBlank、@NotEmpty、@Length等,它们位于org.hibernate.validator.constraints这个包下。 #### 常用注解说明 |校验注解|校验的数据类型|说明| |- |- | - | |@NotNull|任意类型 |校验注解的元素值不为null| |@Null |任意类型 | 校验注解的元素值是null| |@NotBlank |CharSequence子类型 | 验证注解的元素值不为空(不为null、去除首位空格后长度不为0),不同与@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格。| |@NotEmpty |CharSequence子类型、Collection、Map、数组 | 验证注解的元素值不为null且不为空(字符串长度不为0,集合大小不为0)| |@Size(min=下限,max=上限)|字符串、Collection、Map、数组等|验证注解的元素值在min和max(包含)指定区间之内,如字符长度、集合大小| |@Length(min=下限,max=上限)|CharSequence子类型|验证注解的元素值长度在min和max区间内| |@Pattern(regexp=正则表达式,flag=标志的模式)|String,任何CharSequence的子类型|验证注解的元素值与指定的正则表达式匹配| #### 自定义注解 |校验注解|校验的数据类型|说明| |- |- | - | |@PhoneValue|String|验证注解的元素值与指定的正则表达式匹| #### 使用示例 使用@Validated或者@Valid声明要检查的参数,例如: ``` java @PostMapping("/body") public R savePostBody(@Validated @RequestBody CompliantUserDto userDto) { logger.info(userDto.toString()); return R.ok(); } ```