• 后台数据校验


    1. 导入jar包

    <dependencys>
    <dependency>
    <groupId>com.fasterxml</groupId>
    <artifactId>classmate</artifactId>
    <version>1.1.0</version></dependency>
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.4.1.Final</version>
    </dependency>
    <dependency>
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.3.0.Final</version>
    </dependency>
    <dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
    </dependency>
    </dependencys>

    2.编写工具类

    public class Validator {
    /**
    *
    * Description:校验实体类中的属性是否正确 <br/>
    *
    * @author 王星宇
    * @param errorResult:BindingResult类型
    * @return:如果返回值为null,则代表数据完全正确;如果不为null,则返回的是一个封装错误信息map集合
    */
    public static Map<String, Object> fieldValidate(BindingResult errorResult) {
    Map<String, Object> errorMap = null;
    boolean flag = errorResult.hasErrors();
    if (flag) {// 数据有错
    errorMap = new HashMap<String, Object>();
    // 将字段对应的错误信息答应出来
    List<FieldError> errorList = errorResult.getFieldErrors();
    for (FieldError fieldError : errorList) {
    // 1、获取实体类中的属性名
    String fieldName = fieldError.getField();
    // 2、当数据不满足匹配规则时,获取错误提示信息
    String errorMessage = fieldError.getDefaultMessage();
    System.out.println(fieldName + "=" + errorMessage);
    errorMap.put(fieldName, errorMessage);
    }
    }
    return errorMap;
    }
    }

    3.在javabean中加注解

    下面是常用注解

    @AssertTrue //用于boolean字段,该字段只能为true  
    @AssertFalse//该字段的值只能为false  
    @CreditCardNumber//对信用卡号进行一个大致的验证  
    @DecimalMax//只能小于或等于该值  
    @DecimalMin//只能大于或等于该值  
    @Digits(integer=2,fraction=20)//检查是否是一种数字的整数、分数,小数位数的数字。  
    @Email//检查是否是一个有效的email地址  
    @Future//检查该字段的日期是否是属于将来的日期  
    @Length(min=,max=)//检查所属的字段的长度是否在min和max之间,只能用于字符串  
    @Max//该字段的值只能小于或等于该值  
    @Min//该字段的值只能大于或等于该值  
    @NotNull//不能为null  
    @NotBlank//不能为空,检查时会将空格忽略  
    @NotEmpty//不能为空,这里的空是指空字符串  
    @Null//检查该字段为空  
    @Past//检查该字段的日期是在过去  
    @Size(min=, max=)//检查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等  
    @URL(protocol=,host,port)//检查是否是一个有效的URL,如果提供了protocol,host等,则该URL还需满足提供的条件  
    @Valid//该注解只要用于字段为一个包含其他对象的集合或map或数组的字段,或该字段直接为一个其他对象的引用,  
            //这样在检查当前对象的同时也会检查该字段所引用的对象

    4.在controller层写方法(@Valid和BindingResult必须在一起)

  • 相关阅读:
    [Tip: VS debugging]F5 VS Ctrl +F5
    C#: boxing and unboxing
    [Tip: check overflow/underflow C#]
    C# floating Point types
    UVa 103 Stacking Box(记忆化搜索)
    POJ 3321 apple tree(树形数组)
    UVa 116 Unidirectional TSP(简单旅行商DP)
    UVa 562 Dividing coins(简单DP)
    UVa 10003 Cutting Sticks(区间DP)
    UVa 348 Optimal Array Multiplication Sequence(链式DP/区间DP)
  • 原文地址:https://www.cnblogs.com/wxy0715/p/12391205.html
Copyright © 2020-2023  润新知