zoukankan      html  css  js  c++  java
  • SpringMVC后台数据校验

    第①步:引入依赖

     <!--数据校验-->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>4.3.1.Final</version>
            </dependency>
    
            <!--validation api-->
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>1.0.0.GA</version>
            </dependency>
    

      

    第②步:配置Spring.xml

    <!--:参数方法名解析器-->
       <bean id="methodNameResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
           <property name="prefix" value="/"/>
           <property name="suffix" value=".jsp"/>
       </bean>
        <!--扫描包下所有的被标注的类-->
        <context:component-scan base-package="cn.happy.day15Validator"/>
    
        <!--配置验证器-->
        <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
            <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
        </bean>
    
        <!--绑定验证器-->
        <mvc:annotation-driven validator="myvalidator"/>
    

      

    第③步:实体类注解

    package cn.happy.day15Validator;
    
    import org.hibernate.validator.constraints.NotEmpty;
    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.Pattern;
    import javax.validation.constraints.Size;
    
    
    /**
     * Created by Administrator on 2018/3/31.
     */
    public class UserInfo {
    
        /**
         * Min:设置最小值
         * Max:设置最大值
         * Message:打印信息
         */
        //指定年龄在18-120之间
        @Min(value = 18,message = "年龄不能小于18岁")
        @Max(value = 120,message = "年龄不能大于100岁")
        private Integer age;
    
        /**
         * 三种验证方式
         * @NotEmpty  用于集合
         * @NotNull   用于基本类型
         * @NotBlank  用于引用类型
         * @Size    设置大小
         */
        //非空验证
        @NotEmpty(message = "用户名不能为空")
        @Size(max = 20,min = 6,message = "用户名不能大于20个字符或小于6个字符")
        private String name;
    
        /**
         * @Pattern  rehexp匹配正则
         */
        @NotEmpty(message = "邮箱不能为空")
        @Pattern(regexp = "^\w+@\w+/.\w+$",message = "邮箱格式错误")
        private String email;
    
        @Pattern(regexp = "^1[35789]\d{9}$",message = "手机号格式错误")
        private String phone;
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
    }
    

      

    第④步:配置处理器

    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.validation.BindingResult;
    import org.springframework.validation.FieldError;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.validation.Valid;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * Created by Administrator on 2018/3/30.
     */
    @Controller
    public class FirstController {
    
        @RequestMapping("/first")
        /**
         * @Valid   验证对象
         * BindingResult  绑定结果
         * Model    视图对象
         */
        public String doFirst(@Valid UserInfo userInfo, BindingResult br, Model mv) throws Exception {
            //判断br中的错误数
            if(br.getErrorCount()>0){  //证明至少有一个数据错误
                //获取信息
                FieldError name = br.getFieldError("name");
                FieldError age = br.getFieldError("age");
                FieldError phone = br.getFieldError("phone");
                FieldError email = br.getFieldError("email");
    
                //获取错误信息
                if(name!=null){
                    String namemsg = name.getDefaultMessage();
                    //把错误信息返回到页面
                    mv.addAttribute("namemsg",namemsg);
                }
                if(age!=null){
                    String agemsg = age.getDefaultMessage();
                    mv.addAttribute("agemsg",agemsg);
                }
                if(phone!=null){
                    String phonemsg = phone.getDefaultMessage();
                    mv.addAttribute("phonemsg",phonemsg);
                }
                if(email!=null){
                    String emailmsg = email.getDefaultMessage();
                    mv.addAttribute("emailmsg",emailmsg);
                }
                //返回请求View
                return "Validator";
            }
            return "doSecond";
        }
    
    }
    

      配置完成!

    阿里云年末钜惠,27款产品低至2折,有需要的可以看一下https://m.aliyun.com/act/team1212?params=N.rLGEYu0Jk2

  • 相关阅读:
    容器
    最大公共子串
    HTTPS复习
    进程同步算法
    Android系统机制
    【springBoot】之快速构建一个web项目
    【springBoot】之概述
    【java】之深入理解JVM
    【java】之equals和==区别
    【AMQ】之JMS Mesage structure(JMS消息结构)
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8683811.html
Copyright © 2011-2022 走看看