• spring mvc数据验证


    今天来说一下。前段验证,与后端数据验证。大家都知道。在我们。注册与登陆的时候,往往需要对数据进行效验。那么前段我们都知道,可以使用,js去做处理。

    今天主要讲解。后端的数据效验。这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证。首先我们要到http://hibernate.org/validator/下载需要的jar包,这里以4.3.1.Final作为演示,解压后把hibernate-validator-4.3.1.Final.jar、jboss-logging-3.1.0.jar、validation-api-1.0.0.GA.jar这三个包添加到项目中。

    接下来直接看步骤:

    第一步。加载jar包。

    第二步:配置信息加注解。一句话。 <mvc:annotation-driven />

    第三步:在我们需要的pojo类注解。验证信息。

    @Max(value) 被注解的元素必须为一个数字,其值必须小于等于指定的最小值,检查该值是否小于或等于约束条件中指定的最大值. 会给对应的数据库表字段添加一个  check的约束条件.
    @Min 被注解的元素必须为一个数字,其值必须大于等于指定的最小值,检查该值是否大于或等于约束条件中规定的最小值. 会给对应的数据库表字段添加一个check的约束条  件.
    @NotNull 被注解的元素必须不为null
    @Null 被注解的元素必须为null
    @Past(java.util.Date/Calendar); 被注解的元素必须过去的日期,检查标注对象中的值表示的日期比当前早.
    @Pattern(regex=, flag=) 被注解的元素必须符合正则表达式,检查该字符串是否能够在match指定的情况下被regex定义的正则表达式匹配.
    @Size(min=, max=) 被注解的元素必须在制定的范围(数据类型:String, Collection, Map and arrays)
    @Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组, 那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.
    @CreditCardNumber 对信用卡号进行一个大致的验证
    @Email 被注释的元素必须是电子油箱地址
    @Length(min=, max=) 被注解的对象必须是字符串的大小必须在制定的范围内。
    @NotBlank 被注解的对象必须为字符串,不能为空,检查时会将空格忽略
    @NotEmpty 被注释的对象必须为空(数据:String,Collection,Map,arrays)
    @Range(min=, max=) 被注释的元素必须在合适的范围内 (数据:BigDecimal, BigInteger, String, byte, short, int, long and 原始类型的包装类 )
    @SafeHtml(whitelistType=, additionalTags=)被注解的元素检查是否标注值包含恶意的片段如
    @ScriptAssert(lang=, script=, alias=) 任何类型,要使用这个约束条件,必须先要保证Java Scripting API 即JSR 223 ("Scripting for the JavaTM Platform")的实现  在类路径当中. 如果使用的时Java 6的话,则不是问题, 如果是老版本的话, 那么需要把 JSR 223的实现添加进类路径. 这个约束条件中的表达式可以使用任何兼容JSR   223的脚本来编写. (更多信息请参考javadoc)
    @URL(protocol=, host=, port=, regexp=, flags=) 被注解的对象必须是字符串,检查是否是一个有效的URL,如果提供了protocol,host等,则该URL还需满足提供  的条件
     

    第四步:在controller中处理,

    在controller中必要的两个,一个是@Valid ,一个是BindingResult

    然后结果处理

    if(result.hasErrors()){
    //输出错误信息
    List<ObjectError> list=result.getAllErrors();
    for(ObjectError error:list){
    map.put("msge", error.getDefaultMessage());
    }
    request.setAttribute("Res_"+result.getObjectName(), list);
    }

    这里面有两条路返回前段。第一个。后台用request.setAttribute设置。前台jsp用EL表达式接受。第二个。就是,用map

    封装字段,返回前台ajax接受处理。然后复制jsp

    第五步:在jsp页面接受处理

    提示信息,完成,数据效验。

     总结:springmvc -validaor数据效验。重要几点。第一个注解形式,必须加  <mvc:annotation-driven />。第二实体类。必须写上数据验证类型和处理结果。第三。处理controller中,必须把实体类标注@valid,并且必须写上返回处理结果BindingResult 字段。

  • 相关阅读:
    记录几个IDEA插件使用方式
    constructor()方法
    SQL笔记
    修改hosts的方式fq
    正则表达式学习
    android架构下各层的分工
    【转】android的mm命令
    虚拟存储器
    xcode 7种使用coredata遇到 Class not found, using default NSManagedObject instead.问题
    AppStore上架规则
  • 原文地址:https://www.cnblogs.com/huojg-21442/p/7216725.html
Copyright © 2020-2023  润新知