zoukankan      html  css  js  c++  java
  • JSR303校验 —— hibernate-validator实现

    本文是Spring+SpringMVC+Mybatis项目,但JSR303校验使用的是Hibernate提供的实现。

    1. 加入Maven

    <!--  
    JSR303数据校验支持:tomcat7及以上的服务器 
     -->  
    <dependency>  
        <groupId>org.hibernate</groupId>  
        <artifactId>hibernate-validator</artifactId>  
        <version>5.4.1.Final</version>  
    </dependency>  

    2. 要验证的实体类中加入验证规则

    public class Employee {  
        private Integer empId;  
        @Pattern(regexp=("(^[a-zA-Z0-9_-]{6,16}$)|(^[\u2E80-\u9FFF]{2,5}$)"),message="用户名必须合法吧")  
        private String empName;  
        private String gender;  
        @Pattern(regexp=("^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$"),message="邮箱格式必须合法吧!")  
        private String email;  
        private Integer dId;  
    }  

    3. 方法上加入@Valid注解和" BindingResult result "用来接收验证结果,将验证结果返回前端显示即可。

    /** 
     * 员工保存 
     * 1. 支持JSR303校验 
     * 2. 导入Hibernate-validator 
     */  
    @RequestMapping(value="/emp",method=RequestMethod.POST)  
    @ResponseBody  
    public Msg saveEmp(@Valid Employee employee,BindingResult result){  
        if(result.hasErrors()){  
            //校验失败,返回失败,在模态框中显示失败的错误信息  
            List<FieldError> errors = result.getFieldErrors();  
            Map<String, Object> map = new HashMap<String, Object>();  
            for(FieldError fieldError : errors){  
                System.out.println("错误的字段名:"+fieldError.getField());  
                System.out.println("错误信息:"+fieldError.getDefaultMessage());  
                map.put(fieldError.getField(), fieldError.getDefaultMessage());  
            }  
            return Msg.fail().add("errorField", map);  
        }else{  
            employeeService.saveEmp(employee);  
            return Msg.success();  
        }  
    }

    4. 前端显示

    //2. 保存  
    $.ajax({  
        url:"${ctx}/emp",  
        type:"POST",  
        data:$("#empAddModal form").serialize(),  
        success:function(data){  
            if(data.code==100){  
                //1. 关闭模态框   
                $("#empAddModal").modal("hide");  
                //2. 来到最后一页  
                to_page(9999);  
            }else{  
                //显示失败信息  
                //有哪个字段的错误信息就显示哪个字段  
                if(undefined != data.extend.errorField.email){  
                    //显示邮箱错误信息  
                    show_validate_msg("#email_add_input","error",data.extend.errorField.email);  
                }  
                if(undefined != data.extend.errorField.empName){  
                    show_validate_msg("#empName_add_input","error",data.extend.errorField.empName);  
                }  
            }
        },  
        error:function(data){  
              
        }  
    });
  • 相关阅读:
    勇气
    Node.js的安装和配置
    jekins构建时,远程执行shell的问题
    CDMA系统原理二
    详解Android定位
    Docker 简介
    Polly+HttpClientFactory
    K8s-Helm
    k8s-部署应用
    K8S-Pod
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/9220861.html
Copyright © 2011-2022 走看看