SpringMVC10数据验证详解编程语言

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

SpringMVC10数据验证详解编程语言

 

创建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  { 
     
    /** 
     *  
     [email protected]  :会对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>

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12160.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论