JSR303校验

在pom.xml中导入包

<!--JSR303校验-->
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.4.1.Final</version>
        </dependency>

在JavaBean上面用@Pattern注解添加规则
regexp 正则表达式 message 是提示消息

public class Employee {
    private Integer empId;
    //用 Pattern 注解 给他添加限制规则
    @Pattern(regexp = "(^[a-zA-Z0-9_-]{6,16}$)|(^[\\u2E80-\\u9FFF]{2,5})",message = "用户名必须是2- 5位中文或者6- 16位英文和数字的组合")
    private String empName;
    @Pattern(regexp = "^[a-z\\d]+(\\.[a-z\\d]+)*@([\\da-z](-[\\da-z])?)+(\\.{1,2}[a-z]+)+$",message = "邮箱不合法")
    private String gender;
    //此处省略其他代码
    }

Controller层对传入的数据直接进行校验:
用@Valid注解 表示需要数据校验的东西
BindingResult result表示校验的成功与否

    //保存员工信息
    @RequestMapping(value = "/emp", method = RequestMethod.POST)
    @ResponseBody
    public Msg saveEmp(@Valid Employee employee, BindingResult result) {
        //创建一个集合  然后把错误信息装进去
        Map< String, Object > map = new HashMap<>();
        //如果有失败的信息就封装进去
        if (result.hasErrors()) {
            //校验失败返回信息  在模态框中返回校验失败的信息
            List< FieldError > fieldErrors = result.getFieldErrors();
            for (FieldError fieldError : fieldErrors) {
                //循环保存
                map.put(fieldError.getField(), fieldError.getDefaultMessage());
            }
            //添加到msg中
            return Msg.fail().add("errorFields", map);
        } else {
            //校验成功就返回
            employeeService.saveEmp(employee);
            return Msg.success();
        }
    }

前端的javascript

//新增按钮里 保存按钮的方法:
            $("#emp_save_btn").click(function () {
                //首先进行 前端数据校验
                // if (!validate_add_form()) {
                //     return false;
                // }

                //后端校验数据变化是否合理
                if ($(this).attr("ajax-va") == "error") {
                    return false;
                }

                //所有校验成功后进行保存请求
                $.ajax({
                    url: "${APP_PATH}/SSM/emp",
                    type: "post",
                    data: $("#empAddModal  form").serialize(),
                    success: function (result) {
                        //后端再次校验
                        //返回的值是不是成功的值如果是就执行下面的操作
                        if (result.code == 100) {
                            //关闭模态框
                            $("#empAddModal").modal('hide');
                            //显示最后一页
                            to_page(totalRecord)
                        } else {
                            //失败后就显示失败的信息  从返回的参数中获取
                            if (undefined != result.extend.errorFields.gender) {
                                //邮箱的错误信息
                                show_validate_msg("#email_add_input", "1", "邮箱不合法");
                            }
                            if (undefined != result.extend.errorFields.empName) {
                                //员工的错误信息
                                show_validate_msg("#empName_add_input", "1", "用户名可以是2- 5位中文或者6- 16位英文和数字的组合");
                            }
                        }

                    }
                })

            })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值