首页 > 编程语言 > 详细

SpringBoot 表单验证

时间:2019-02-24 21:44:36      阅读:218      评论:0      收藏:0      [点我收藏+]

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 表单验证

原文:https://www.cnblogs.com/vincenshen/p/10427881.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!