• SpringMVC_数据校验


    一:数据校验的分类

    数据校验分为前台校验和后台校验,前台校验主要是利用JavaScript来完成的,后台校验主要利用Java代码来完成的,可以使用SpringMvc和Hibernate validator来完成数据校验

    二:后台数据校验

    1:导入Maven相关Jar包(在父pom.xml文件中)

    <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate-validator</artifactId>
       <version>6.0.9.Final</version>
    </dependency>

    2:创建Java类需要校验的数据属性上添加相应的注解

    package com.doaoao.check;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.NotEmpty;
    import javax.validation.constraints.Size;
    
    public class testUser {
        
        @NotEmpty(message = "用户名不能为空")
        @Size(min = 5,max = 10,message = "用户名的长度为{min}-{max}之间")  // 会将{min}替换为前面设置的min值
        private String username;
        
        @Min(value = 0,message = "年龄的大小不能小于{vlaue}")
        @Min(value = 150,message = "年龄的大小不能大于{vlaue}")
        private int age;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }

     3:修改配置文件 springmvc.xml中的内容

    <!--验证器-->
    <bean id="doaoaoValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
    </bean>
    
    <!--注册注解驱动-->
    <mvc:annotation-driven validator="doaoaoValidator"/>

    4:创建一个Controller

    package com.doaoao.check;
    import org.springframework.stereotype.Controller;
    import org.springframework.validation.BindingResult;
    import org.springframework.validation.FieldError;
    import org.springframework.validation.ObjectError;
    import org.springframework.validation.annotation.Validated;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import java.util.List;
    
    @Controller
    public class UserController {
        @RequestMapping("/register.do")
        public ModelAndView register(@Validated testUser user, BindingResult br){
            ModelAndView m = new ModelAndView();
            List<ObjectError> allError = br.getAllErrors();
            // 当格式校验出错时执行 alllError不为空时
            if(allError != null && allError.size() > 0){
                FieldError nameError = br.getFieldError("name");
                FieldError ageError = br.getFieldError("age");
    
                // 当用户名输入出现问题
                if(nameError != null){
                    m.addObject("nameError",nameError.getDefaultMessage());
                }
    
                // 当年龄输入出现问题
                if(ageError != null){
                    m.addObject("ageError",ageError.getDefaultMessage());
                }
                m.setViewName("/register");
                return m;
            }
            m.addObject("name",user.getUsername());
            m.setViewName("/user");
            return m;
        }
    }

    5:jsp中的内容

     <form action="/register.do" method="get">
        用户名:<input type="text" name="username">${nameError}<br>
        年龄:<input type="text" name="age">${ageError}<br>
        <input type="submit" value="提交">
    </form>

    # 注:hibernate validator中常用注解

     ...

    本笔记参考自:小猴子老师教程 http://www.monkey1024.com

  • 相关阅读:
    Apache Poi 操作word,替换字符保留样式问题,runs段落混乱问题。
    C# 文件打包下载
    git eclipse 切换分支,出现很多的历史分支 清理操作
    Centos7添加ip白名单
    技术随笔3
    技术随笔2
    6 Python编程:从入门到实践用户输入和while循环 摩天居士
    7 Python编程:从入门到实践函数 摩天居士
    8 Python编程:从入门到实践类 摩天居士
    学习Python必刷的100道经典练习题,没练等于白学 摩天居士
  • 原文地址:https://www.cnblogs.com/Doaoao/p/10669968.html
Copyright © 2020-2023  润新知