zoukankan      html  css  js  c++  java
  • SpringMVC数据校验

    一、准备

    1.1 校验理解

    项目中,通常使用较多的是前端的校验,比如页面中js校验。对于安全要求较高建议在服务端进行校验。服务端校验有:

    • 控制层:校验页面请求的参数的合法性。在服务端校验不区分客户端(pc、手机、远程调用),其校验是一致的。
    • 业务层(使用较多):主要校验关键的业务参数,仅限于service接口中使用的参数。
    • 持久层:一般是不校验的。

    1.2 springmvc 校验

    • springmvc使用hibernate的校验框架validation(和hibernate没有关系)。

    • 思路
      页面提交请求的参数,请求到Controller方法中,使用validation进行校验。如果校验出错,需要将错误信息展示到页面。

    • 具体需求
      商品修改,添加校验(检验商品名称长度,生成日期的非空校验)如果校验出错,在商品修改页面显示错误信息。

    1.3 环境

    添加相关校验包:

    hibernate-validator-4.3.0.Final.jar
    jboss-logging-3.1.0.CR2.jar
    validation-api-1.0.0.GA.jar
    1 @RequestMapping(value = "/login",method = RequestMethod.POST)
    2     public String Login(Model model, @Valid User user, Errors errors){
    3         if (errors.hasErrors()){
    4             return "login";
    5         }
    6         System.out.println(user);
    7         model.addAttribute(user);
    8         return "success";
    9     }

    在需要校验的对象前加上@valid,后面紧跟Errors,用来做校验的错误处理。

    1 public class User {
    2     @NotNull
    3     @Size(min = 3,max = 16)
    4     private String username;
    5     @NotNull
    6     private String password;

    校验的对象bean

    注解含义
    @Null 被注释的元素必须为 null
    @NotNull 被注释的元素必须不为 null
    @AssertTrue 被注释的元素必须为 true
    @AssertFalse 被注释的元素必须为false
    @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @Size(max=, min=) 被注释的元素的大小必须在指定的范围内
    @Digits (integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
    @Past 被注释的元素必须是一个过去的日期
    @Future 被注释的元素必须是一个将来的日期
    @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 Hibernate Validator附加的constraint
    @NotBlank(message =) 验证字符串非null,且长度必须大于0
    @Email 被注释的元素必须是电子邮箱地址
    @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
    @NotEmpty 被注释的字符串的必须非空
    @Range(min=,max=,message=) 被注释的元素必须在合适的范围内


  • 相关阅读:
    结对编程队友个人项目分析
    Android入门3:从Toolbar到Material Design
    Qt串口通信
    AVT Vimba与OpenCV环境配置
    Git远程使用技巧
    Android入门2:从GridView控件使用到自定义Adapter
    Android入门1:使用VideoView和MediController播放视频
    kafka+spark streaming+redis学习
    kafka学习笔记
    安卓获取服务器返回的图片资源路径并下载图片
  • 原文地址:https://www.cnblogs.com/xiehang/p/9744630.html
Copyright © 2011-2022 走看看