• JSR303后端校验(一)


    JSR303后端校验(一)

    (1)在pom文件中添加依赖

        <!-- JSR303后端校验 -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>6.0.16.Final</version>
            </dependency>

    (2)在实体类中添加对应的校检规则

      private Integer id;
        
        @NotEmpty(message = "用户名不能为空")
        @Pattern(regexp="^\w{6,18}$",message="用户名必须由6到18位的数字字母或者下划线组成")
        private String name;
        
        @Length(min=6,max=32,message="密码必须为6到32位的字符串")
        private String password;
        
        @NotNull(message = "年龄不能为空")
        @Max(value = 110,message = "输入的年龄不合法")
        @Min(value=1,message = "输入的年龄不合法")
        private Integer age;
        
        @Pattern(regexp = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$",message = "邮箱格式不正确")
        private String email;

    (3)在controller中使用校检规则

    @RequestMapping("/addStudent")
        public String addStudent(@Valid Student student,BindingResult result,ModelMap map) {
            if(result.hasErrors()) {
                List<FieldError> errors = result.getFieldErrors();
                for (FieldError fieldError : errors) {
                    System.out.println(fieldError);
                    System.out.println("字段:"+fieldError.getField()+",信息:"+fieldError.getDefaultMessage());
                    map.put(fieldError.getField(), fieldError.getDefaultMessage());
                    
                    if(fieldError.getField().equals("name")) {
                        map.put("name", fieldError.getDefaultMessage());
                    }
                    if(fieldError.getField().equals("password")) {
                        map.put("password", fieldError.getDefaultMessage());
                    }
                    if(fieldError.getField().equals("age")) {
                        map.put("age", fieldError.getDefaultMessage());
                    }
                    if(fieldError.getField().equals("age")) {
                        map.put("age", fieldError.getDefaultMessage());
                    }
                    if(fieldError.getField().equals("email")) {
                        map.put("email", fieldError.getDefaultMessage());
                    }
                }
            }else {
                studentService.addStudent(student);
            }
            return "student";
        }

    (4)页面提示

    <form action="addStudent" method="get">
        用户名:<input type="text" name="name"><span style="color:red">${name }</span><br>
        密码:<input type="text" name="password"><span style="color:red">${password }</span><br>
        年龄:<input type="text" name="age"><span style="color:red">${age }</span><br>
        邮箱:<input type="text" name="email"><span style="color:red">${email }</span><br>
        出生日期:<input type="date" name="borth"><br>
        <input type="submit" value="提交">
    </form>

     

  • 相关阅读:
    Hibernate二 配置
    Hibernate学习笔记一 理解
    使用Oracle的logminer工具进行日志挖掘
    确定系统中的字节序是大端字节序还是小端字节序。
    linux下oracle对参数要求的解释
    SnapAssure备份恢复(从文件系统到ASM实例)
    oracle的增量检查点
    C# 的三种序列化方法
    C#引用C++的DLL时C#和C++的数据类型对照表
    asp.net通过基类实现统一脚本和样式的管理
  • 原文地址:https://www.cnblogs.com/wanerhu/p/11046673.html
Copyright © 2020-2023  润新知