zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Java多线程系列 JUC锁03 公平锁(一)
    Java多线程系列 JUC锁02 互斥锁ReentrantLock
    JDBC课程3--通过ResultSet执行查询操作
    JDBC课程2--实现Statement(用于执行SQL语句)--使用自定义的JDBCTools的工具类静态方法,包括insert/update/delete三合一
    JDBC_通过DriverManager获得数据库连接
    JDBC课程1-实现Driver接口连接mysql数据库、通用的数据库连接方法(使用文件jdbc.properties)
    [终章]进阶20-流程控制结构--if/case/while结构
    MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子
    MySQL进阶18- 存储过程- 创建语句-参数模式(in/out/inout-对应三个例子) -调用语法-delimiter 结束标记'$'- 删除/查看/修改-三个练习
    SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量
  • 原文地址:https://www.cnblogs.com/xtdxs/p/7097384.html
Copyright © 2011-2022 走看看