您的位置:首页 > 编程语言 > Java开发

SpringMVC数据校验

2017-02-16 10:36 295 查看
                 如果想要实现数据校验,需要导入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;
}
@Override
public 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>

错误显示如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: