• SpringMVC10数据验证


    在之前的案例上面! 引入需要的验证jar包

    创建index.jsp页面

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML>
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
          <form action="student/addStudent"  method="post">
         年龄:<input type="text" name="age"/> ${ageE} <br/>
         姓名:  <input type="text" name="userName"/>${userNameE}<br/>
       电话:<input type="text" name="phone"> ${phoneE}<br/> 
           <input type="submit" value="新增"/>
          </form>
      </body>
    </html>

    对应的Student类

    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.NotNull;
    import javax.validation.constraints.Pattern;
    import javax.validation.constraints.Size;
    
    import org.hibernate.validator.constraints.NotBlank;
    
    /**
     * 
     * @NotNull   作用在基本数据类型上
     * @NotBlank  作用在String上
     * @NotEmpty  作用在集合上
     *  @Min  最小值
     *  @Max  最大值
     *  @Size  字符串的长度
     * @Pattern  自定义验证规则 
     * 
     */
    public class Student {
    
          @NotNull(message="年龄不能为空")
          @Min(value=0,message="年龄不能低于{value}")
          @Max(value=150,message="年龄不能高于{value}")
          private  Integer  age; //年龄
          @NotBlank(message="姓名不能为空")
          @Size(min=6,max=10,message="长度必须在{min}---{max}之间")
          private  String  userName;  //姓名
          @NotBlank(message="手机号不能为空")
          @Pattern(regexp="^1[345789]\d{9}$",message="手机格式不正确")
          private  String  phone;  //电话
          
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
        public Student(Integer age, String userName, String phone) {
            super();
            this.age = age;
            this.userName = userName;
            this.phone = phone;
        }
        public Student() {
            super();
        }
           
        
    
    }

    对应的controller

    import org.springframework.stereotype.Controller;
    import org.springframework.validation.BindingResult;
    import org.springframework.validation.annotation.Validated;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import sun.util.calendar.BaseCalendar;
    
    import cn.bdqn.bean.Student;
    
    @Controller
    @RequestMapping("/student")
    public class StudentController  {
        
        /**
         * 
         *@Validated  :会对student对象中所有标注 注解的属性进行验证!
         *BindingResult:如果 验证出现错误 ,就会把错误信息给这个result
         *
         *result.getFieldError("age").getDefaultMessage()
         *获取我们设置的错误 信息!
         *
         */
        @RequestMapping("/addStudent")
        public ModelAndView  addStudent(@Validated Student student,BindingResult result) {
            System.out.println("进入了  addStudent");
            ModelAndView mv=new ModelAndView();
            if (result.hasErrors()) {  //出现了验证错误
                if (result.getFieldError("age")!=null) {  //证明age验证有错误
                    mv.addObject("ageE", result.getFieldError("age").getDefaultMessage());
                }
                if (result.getFieldError("userName")!=null) {  //证明userName验证有错误
                    mv.addObject("userNameE", result.getFieldError("userName").getDefaultMessage());
                }
                if (result.getFieldError("phone")!=null) {  //证明phone验证有错误
                    mv.addObject("phoneE", result.getFieldError("phone").getDefaultMessage());
                }
                mv.setViewName("/index.jsp");
                return   mv;
            }
            mv.setViewName("/success.jsp");
           return   mv;
        }
        
        
        
        
    }

    xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            ">
      <!-- 配置springmvc的组件  -->
      <context:component-scan base-package="cn.bdqn.controller"/>
      <!-- 开启 注解的方式-->
      <mvc:annotation-driven validator="myValidator"/>
      <!-- 生成我们的验证器 -->
      <bean  id="myValidator"  class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
      </bean>
      
    </beans>
  • 相关阅读:
    Android 3D滑动菜单完全解析,实现推拉门式的立体特效
    2013年9月25日参加耐特菲姆(北京)玉米滴灌培训小结
    日积月累:ProguardGui进行jar包代码混淆
    CSS3之渐变Gradient
    poj 3182 The Grove
    qrcodeJS生成二维码
    样式优先级
    git流程及操作
    js data日期初始化的5种方法 [转]
    转 jQuery中的$.extend方法来扩展JSON对象
  • 原文地址:https://www.cnblogs.com/999-/p/6163643.html
Copyright © 2020-2023  润新知