美文网首页
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