zoukankan      html  css  js  c++  java
  • BindingResult的使用

    BindingResult用在实体类校验信息返回结果绑定。

    实体类常用的校验注解有:

    @Null  被注释的元素必须为null
    @NotNull  被注释的元素不能为null
    @AssertTrue  该字段只能为true
    @AssertFalse  该字段的值只能为false
    @Min(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @Max(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @DecimalMin("value")  被注释的元素必须是一个数字,验证小数的最小值
    @DecimalMax("value")  被注释的元素必须是一个数字,验证小数的最大值
    @Size(max,min)  查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
    @Digits(integer,fraction) 检查是否是一种数字的整数、分数,小数位数的数字
    @Past  被注释的元素必须是一个过去的日期
    @Future  被注释的元素必须是一个将来的日期
    @Pattern(regexp = "[abc]") 被注释的元素必须符合指定的正则表达式。
    @Email 被注释的元素必须是电子邮件地址
    @Length(max=5,min=1,message="长度在1~5")    检查所属的字段的长度是否在min和max之间,只能用于字符串
    @NotEmpty  被注释的字符串必须非空
    @Range  被注释的元素必须在合适的范围内   

    @CreditCardNumber 对信用卡号进行一个大致的验证

    @NotBlank 不能为空,检查时会将空格忽略

    @NotEmpty 不能为空,这里的空是指空字符串

    以上注解在使用时,都可以设置自定义message提示信息。

    @ApiModel(value ="TestEntity")
    public class TestEntity implements Serializable{
     
        private static final long serialVersionUID = 1L;
        
        @ApiModelProperty(value = "唯一id")
        private Long id;
        
        @Size(max=10,message="最大长度为10")
        @ApiModelProperty(value = "名称")
        private String name;
        
        @NotNull(message="参数不能为空")
        @ApiModelProperty(value = "年龄")
        private Integer age;
     
        //getter setter...
        
    }
    public class TestController {
     
        @PostMapping("/a")
        @ApiOperation(value = "测试", notes = "")
        public void test(@RequestBody @Valid TestEntity test,BindingResult bindingResult) {
            System.out.println(test.toString());
            if (bindingResult.hasErrors()) {
                throw new 自定义Exception("错误提示码",bindingResult.getFieldError().getDefaultMessage());
            }
        }
    }

    @Valid和BindingResult配套使用,@Valid用在参数前,BindingResult作为校验结果绑定返回。

    bindingResult.hasErrors()判断是否校验通过,校验未通过,bindingResult.getFieldError().getDefaultMessage()获取在TestEntity的属性设置的自定义message,如果没有设置,则返回默认值"javax.validation.constraints.XXX.message"。

    注意:在实体类使用校验注解时,controller一定要使用bindingResult处理校验结果,且实体类作为查询参数时,避免被其他方法使用,不然的地方需要限制,有的没有,不需要限制的方法会报错。

  • 相关阅读:
    神鬼传奇客户端解包图片(ui\common)
    电子书下载:Pro ASP.NET MVC 3 Framework 3rd Edition
    DDS工具
    Delphi2010中TResourceStream流使用
    电子书下载:Professional C# 4 and .NET 4
    电子书下载:Professional NoSQL
    电子书下载:C# Database Basics
    FancyCache要怎样设置才最大发挥硬盘的性能?
    完美时空Cube Engine 3D引擎
    DELPHI获取CPU信息
  • 原文地址:https://www.cnblogs.com/miwujun/p/14257258.html
Copyright © 2011-2022 走看看