• SpringBoot 表单验证


    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);
        }
    
  • 相关阅读:
    Python学习 Day 068
    Python模块(一)(常用模块)
    python面向对象(C3算法)(六)
    Python面向对象(约束,异常处理,md5加密)(五)
    python面向对象(反射)(四)
    Python面向对象(类之间的关系)(三)
    Python面向对象(成员)(二)
    python面向对象(一)
    Python函数的装饰器
    递归与二分法
  • 原文地址:https://www.cnblogs.com/vincenshen/p/10427881.html
Copyright © 2020-2023  润新知