美文网首页
SSM框架的(CRUD)_新增_JSR303校验21

SSM框架的(CRUD)_新增_JSR303校验21

作者: 念念碎平安夜 | 来源:发表于2020-01-08 16:06 被阅读0次

已有:jQuery前端校验、ajax用户名重复校验
新增:后端校验JSR303(重要数据)

员工保存:

  • 支持JSR303校验
  • 导入Hibernate-Validator

一、打开pom.xml添加Hibernate-Validator

<!--JSR303数据校验支持;tomcat7及以上的服务器, 
        tomcat7以下的服务器:el表达式。额外给服务器的lib包中替换新的标准的el
        -->
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.4.1.Final</version>
        </dependency>

二、打开Employee实体类,进行校验规则

@Pattern(regexp="(^[a-zA-Z0-9_-]{6,16}$)|(^[\u2E80-\u9FFF]{2,5})"
            ,message="用户名必须是2-5位中文或者6-16位英文和数字的组合")
    private String empName;
//  @Email
    @Pattern(regexp="^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$",
            message="邮箱格式不正确")
    private String email;

三、打开EmployeeController

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

四、index.jsp

//2、发送ajax请求保存员工
            $.ajax({
                url:"${APP_PATH}/emp",
                type:"POST",
                data:$("#empAddModal form").serialize(),
                success:function(result){
                    if(result.code==100){
                        //员工保存成功;
                        //1、关闭模态框
                        $("#empAddModal").modal('hide');
                        
                        //2、来到最后一页,显示刚才保存的数据
                        //发送ajax请求显示最后一页数据即可
                        to_page(totalRecord);
                    }else{
                        //显示失败信息
                        //console.log(result);
                        //有哪个字段的错误信息就显示哪个字段的;
                        if(undefined != result.extend.errorFields.email){
                            //显示邮箱错误信息
                            show_validate_msg("#email_add_input", "error", result.extend.errorFields.email);
                        }
                        if(undefined != result.extend.errorFields.empName){
                            //显示员工名字的错误信息
                            show_validate_msg("#empName_add_input", "error", result.extend.errorFields.empName);
                        }
                    }
                }
            });

相关文章

网友评论

      本文标题:SSM框架的(CRUD)_新增_JSR303校验21

      本文链接:https://www.haomeiwen.com/subject/ibbhactx.html