SpringMVC数据校验

来源:互联网 发布:宽带有网络wifi连不上 编辑:程序博客网 时间:2024/06/05 02:41

                 如果想要实现数据校验,需要导入hibernate-validator-5.2.4.Final.jar,validation-api-1.1.0.Final.jar,jboss-logging-3.2.1.Final.jar,classmate-1.1.0.jar这四个包,

在sping配置文件中配置org.springframework.format.support.FormattingConversionServiceFactoryBean,因为<mvc:annotation-driven/>标签内部默认创建的ConversionService实例就是一个FormattingConversionServiceFactoryBean,所以只需要使用标签<mvc:annotation-driven />就可以了。

然后在需要校验的Bean字段上引用需要的标签如下:

package com.createnets.springmvc.core;import java.io.Serializable;import org.hibernate.validator.constraints.Email;import org.hibernate.validator.constraints.Length;    public class User implements Serializable {         @Length(min=2,max=6,message="用户信息错误,我滴天哪")    private String name;    @Email(message="email错误,我滴天哪")    private String email;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "User [emil=" + email + ", name=" + name + "]";}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}        }  

之后在Controller类方法中使用@valid标签,如下

    @Controller      @RequestMapping("/user")    public class UserController {                @RequestMapping("/add")          public String add(@Valid User user, BindingResult result) {              if(result.hasErrors()) {                  return "user/add";              }              return "user/add";          }      } 
最后在页面显示校验错误信息如下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">  </head>    <body>     11学生表单:<br>    <form:form action="teacher/add.html" modelAttribute="model" >    <form:errors path="*"></form:errors>    <input type="hidden" name="id" value="1" /><table style="border:1px solid red;margin-left: 100px;"><tr><td>学生姓名</td><td><form:errors path="name"></form:errors><input type="text" name="name" /></td></tr><tr><td>年龄</td><td><input type="text" name="age" /></td></tr><tr><td colspan="2" align="center" valign="middle"><input type="submit" value="添加学生"/></td></tr></table>        </form:form>  </body></html>

注意modelAttribute="model" ,<form:errors path="*"></form:errors>,<form:errors path="name"></form:errors>

错误显示如下





0 0
原创粉丝点击