Valid 注解

JSR 303 校验框架注解类:

• @NotNull 注解元素必须是非空

• @Null 注解元素必须是空

• @Digits 验证数字构成是否合法

• @Future 验证是否在当前系统时间之后

• @Past 验证是否在当前系统时间之前

• @Max 验证值是否小于等于最大指定整数值

• @Min 验证值是否大于等于最小指定整数值

• @Pattern 验证字符串是否匹配指定的正则表达式

• @Size 验证元素大小是否在指定范围内

• @DecimalMax 验证值是否小于等于最大指定小数值

• @DecimalMin 验证值是否大于等于最小指定小数值

• @AssertTrue 被注释的元素必须为true

• @AssertFalse 被注释的元素必须为false

Hibernate Validator扩展注解类:

• @Email 被注释的元素必须是电子邮箱地址

• @Length 被注释的字符串的大小必须在指定的范围内

• @NotEmpty 被注释的字符串的必须非空

• @Range 被注释的元素必须在合适的范围内

校验结果保存在BindingResult或Errors对象中。

Validated是 Spring 对 Valid 的封装,是 Valid 的加强版,支持更多特性。

示例代码

实体类,对cupSize和age做了限制

@Data   // 使用 lombok 简化Getter/Setter/toString/hashCode代码
@Entity
public class Girl {
@Id
@GeneratedValue
private Integer id; @NotEmpty(message = "Cup大小不能为空")
private String cupSize; @NotNull(message = "年龄不能为空")
@Min(value = 18, message = "未成年少女禁止入内")
private Integer age;
}

在Controller中使用@Valid对@PathVariable @RequestParam @RequstBody进行验证,验证的结果保存在 BindingResult中

@PostMapping(value = "/girls")
public Girl girlAdd(@Valid @RequestBody Girl girl, BindingResult bindingResult) {
if (bindingResult.hasErrors()){
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
}
return girlRepository.save(girl);
}

SpringBoot 表单验证的更多相关文章

  1. SpringBoot表单验证

    需求:年龄在18岁以下的女生不能注册 处理器中的写法: 实体类中的写法:

  2. (办公)springboot配置表单验证@Valid

    项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置.最近springboot用的还是蛮多的,我还是做事情,把经验发表一下. SpringBoot提 ...

  3. spring boot学习(7) SpringBoot 之表单验证

    第一节:SpringBoot 之表单验证@Valid 是spring-data-jpa的功能:   下面是添加学生的信息例子,要求姓名不能为空,年龄大于18岁.   贴下代码吧: Student实体: ...

  4. SpringBoot(五)_表单验证

    SpringBoot(五)_表单验证 参数校验在我们日常开发中非常常见,最基本的校验有判断属性是否为空.长度是否符合要求等,在传统的开发模式中需要写一堆的 if else 来处理这些逻辑,很繁琐,效率 ...

  5. SpringBoot之表单验证@Valid

    转自:https://www.cnblogs.com/chenlove/p/8708627.html SpringBoot提供了强大的表单验证功能实现,给我们省去了写验证的麻烦: 这里我们给下实例,提 ...

  6. Spring Boot笔记八:表单验证

    所谓的表单验证,就是为了防止用户乱输入的,这个问题前端的HTML5就可以判断了,其实不需要后端来验证,这里还是讲一下后端验证 首先,我们的Person类,我们加上一些表单验证的注释,如下: packa ...

  7. Spring进行表单验证

    转自:https://www.tianmaying.com/tutorial/spring-form-validation 开发环境 IDE+Java环境(JDK 1.7或以上版本) Maven 3. ...

  8. 1-7SpringBoot之表单验证@Valid

    SpringBoot提供了强大的表单验证功能实现,给我们省去了写验证的麻烦: 这里我们给下实例,提交一个有姓名和年龄的表单添加功能, 要求姓名不能为空,年龄必须是不小于18 : 我们先新建一个Stud ...

  9. Springboot--元注解及自定义注解(表单验证)

    本文简单说明一下元注解,然后对元注解中的@Retention做深入的讨论,在文章最后使用元注解写一个自定义注解来结尾. 一.结论: @Target:注解的作用目标 @Target(ElementTyp ...

随机推荐

  1. Machine Learning Yearning - Andrew NG

    链接(1~12章): https://gallery.mailchimp.com/dc3a7ef4d750c0abfc19202a3/files/Machine_Learning_Yearning_V ...

  2. Django(模板语言-自定义filter和simple_tag)

    Django(模板语言-自定义filter和simple_tag)   filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. ...

  3. C# 多线程学习(五)线程同步和冲突解决

    from:https://blog.csdn.net/codedoctor/article/details/74358257 首先先说一个线程不同步的例子吧,以下为售票员的模拟售票,多个售票员出售10 ...

  4. 解决Ajax请求跨域问题

    from:https://blog.csdn.net/wang379275614/article/details/53333775 上篇文章提到,由于浏览器的同源策略,使得,AJAX请求只能发给同源的 ...

  5. JavaScript------日期和时间戳的相互转换

    var date = new Date(); 日期转时间戳 Number(date)或者date.getTime(); //只是转换成了纯数字的时间戳,例如:1498144203861需要转换才能使用 ...

  6. iOS-项目archive错误Code Sign error: No matching provisioning profile found: Your build settings UUID:

    解决办法: 1.关闭项目 2.打开xprojiect右键 打开包文件 3.搜索:PROVISIONING_PROFILE 相关删除了

  7. 【MVC model 验证失效 】【Unexpected token u in JSON at position 0】【jquery-plugin-validation】

    问题描述:mvc model 调用jquery-plugin-validation 实现 前台的数据验证,时报错 Unexpected token u in JSON at position 0 很讨 ...

  8. string 转 java对象、转map的方式

    1.使用fastJson 将String转 map: String out; Object succesResponse = JSON.parse(out);    //先转换成Object Map ...

  9. JAVA源码之JDK(一)——java.lang.Object

    想要深入学习JAVA,还需追本溯源,从源码学起.这是我目前的想法.如今JAVA各种开源框架涌出,很多JAVA程序员都只停留在如何熟练使用的层次.身为其中一员的我深感惭愧,所以要加快学习的脚步,开始研究 ...

  10. slave_exec_mode参数对主从复制的影响

    主从复制中常会遇到的问题就是1062主键重复.1032 slave上相关记录没找到 如果在读写分离的架构中,slave同步失败会对业务造成很大的影响的(比如主写入了一条数据,从上无法读取到这样对业务影 ...