SpringMVC学习之验证——validator

springMVC可以通过多种验证框架的集成:

例如Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证。后面的例子使用了3jar包:

hibernate-validator-4.3.1.Final.jar

jboss-logging-3.3.0.Final.jar

validation-api-1.1.0.Final.jar

下面是一个简单的验证例子,首先是 springnvc 配置文件:



        
    
        
        
        
        
                
                
                
        
        
                   
                  
                   
        

        
        
                
                
                
                
        

然后是验证资源: validatorMessages .properties 文件:

input.user.age=\u5E74\u9F84\u4E0D\u80FD\u4E3A\u7A7A
input.user.ager=\u5E74\u9F84\u5FC5\u987B\u57281~99\u4E4B\u95F4

控制器的代码:

package com.springmvc.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.springmvc.pojo.User;
@Controller
@RequestMapping("/validator/")
public class ValidatorController {
        
        @RequestMapping("index")
        public ModelAndView index(HttpServletRequest request,HttpServletResponse response) {
                System.out.println("**********ValidatorController——index***********");
                return new ModelAndView("validator");
        }
        
        //使用注解@Valid对参数user进行验证
        @RequestMapping("validator")
        public String validator(@Valid @ModelAttribute("user") User user,BindingResult result) throws Exception {
                if(result.hasErrors()) {  //判断是否有验证错误
                        return "validator";		//返回表单提交页面
                }
                return "simple";		//验证均通过后,跳转的页面
        }

}
实体类 U ser:

package com.springmvc.pojo;

import java.util.Date;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

public class User {
        @NotEmpty(message = "name is null !")
        private String name;
        
        @NotNull(message="{input.user.age}")  //validatorMessages中的input.user.age=年龄不能为空
        @Range(min=1,max=99,message="{input.user.ager}")//年龄必须在1~99之间
        private Integer age;
        private Date birthday;

        public Date getBirthday() {
                return birthday;
        }

        public void setBirthday(Date birthday) {
                this.birthday = birthday;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public Integer getAge() {
                return age;
        }

        public void setAge(Integer age) {
                this.age = age;
        }

        @Override
        public String toString() {
                return "User [name=" + name + ", age=" + age + ", birthday=" + birthday + "]";
        }

}

在工程的欢迎页面写一个转发:

<%response.sendRedirect("validator/index");%>

访问控制器里的index( )方法,跳转到/WEB-INF/jsp/目录下的validator.jsp的表单提交页面:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>




Insert title here


        
                
name:
age:
birthday:

运行工程,到表单提交页面,如下图:

SpringMVC学习之验证——validator_第1张图片


点击提交:

SpringMVC学习之验证——validator_第2张图片

当年龄超出限制:

SpringMVC学习之验证——validator_第3张图片

点击提交:

SpringMVC学习之验证——validator_第4张图片

你可能感兴趣的:(SpringMVC学习之验证——validator)