zoukankan      html  css  js  c++  java
  • springboot参数校验

    为了能够进行嵌套验证,必须手动在Item实体的props字段上明确指出这个字段里面的实体也要进行验证。由于@Validated不能用在成员属性(字段)上,但是@Valid能加在成员属性(字段)上,而且@Valid类注解上也说明了它支持嵌套验证功能,那么我们能够推断出:@Valid加在方法参数时并不能够自动进行嵌套验证,而是用在需要嵌套验证类的相应字段上,来配合方法参数上@Validated或@Valid来进行嵌套验证。

    public class Item {
     
        @NotNull(message = "id不能为空")
        @Min(value = 1, message = "id必须为正整数")
        private Long id;
     
        @Valid // 嵌套验证必须用@Valid
        @NotNull(message = "props不能为空")
        @Size(min = 1, message = "props至少要有一个自定义属性")
        private List<Prop> props;
    
    }

    一些常用的Validation注解
    注解 作用
    @NotNull   值不能为空
    @Null   值必须为空
    @Pattern(regex=)   字符串必须匹配正则表达式
    @Size(min, max)   集合元素的数量必须在min和max之间
    @CreditCardNumber(ignoreNonDigitCharacters=)   字符串必须是信用卡号,按找美国的标准验证
    @Email   字符串必须是Email地址
    @Length(min, max)   检查字符串的长度
    @NotBlank   字符串不能为空串
    @NotEmpty   字符串不能为null, 集合必须有元素
    @Range(min, max)   数字必须大于min, 小于max
    @SafeHtml   字符串必须是安全的html
    @URL   字符串必须是合法的URL
    @AssertFalse   值必须是false
    @AssertTrue   值必须是true
    @DecimalMax(value=, inclusive=)   值必须小于等于(inclusive=true)/小于(inclusive=false)属性指定的值,也可以注释在字符串类型的属性上。
    @DecimalMin(value=, inclusive=)   值必须大于等于(inclusive=true)/小于(inclusive=false)属性指定的值,也可以注释在字符串类型的属性上。
    @Digist(integer=,fraction=)   数字格式检查。integer指定整数部分的最大长度,fraction指定小数部分的最大长度
    @Future   时间必须是未来的
    @Past   事件必须是过去的
    @Max(value=)   值必须小于等于value指定的值。不能注解在字符串类型属性上。
    @Min(value=)   必须小于等于value指定的值。不能注解在字符串类型属性上。

  • 相关阅读:
    SPRING-BOOT系列之简介
    SPRING-BOOT系列之Spring4快速入门
    Java网络编程
    python中cursor操作数据库(转)
    TextView显示HTML文本时<IMG>标签指定图片的显示处理
    DBCP连接池介绍
    spring中propertyplaceholderconfigurer简介
    NoSQL 数据建模技术(转)
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据(转载)
    Linux下MySQL5.6的修改字符集编码为UTF8
  • 原文地址:https://www.cnblogs.com/suruozhong/p/11804050.html
Copyright © 2011-2022 走看看