使用SpringMVC的表单验证

上一篇搭建了基本项目,这一篇在此基础上加入表单验证功能。

第一步,添加command类

package test.bean;

import javax.validation.constraints.Size;

public class User {

	@Size(min=3,max=30)
	private String username;
	@Size(min=3,max=30)
	private String password;
	private String gender;
	
	private int age;
	private String email;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}	
}



各种约束注解的说明在 这篇文章中有说明。

第二步,添加相应的Controller

package test.controller;

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.bind.annotation.RequestMethod;

import test.bean.User;

@Controller
@RequestMapping("signup")
public class UserController {

	@RequestMapping(method=RequestMethod.GET)
	public String base(){
		return "signup";
	}
	@RequestMapping(method=RequestMethod.POST)
	public String save(@Valid User user, BindingResult result){
		if (result.hasErrors()){
			return "signup";
		}
		return "savesuccess";
		
	}

	@ModelAttribute
	public User commandBind(){
		return new User();
	}	
}




第三步,表单页面


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.error {
	color: #ff0000;
}
 
.errorblock {
	color: #000;
	background-color: #ffEEEE;
	border: 3px solid #ff0000;
	padding: 8px;
	margin: 16px;
}
</style>
</head>
<body>
	<form:form commandName="user" action="signup">
	   <form:errors path="*" cssClass="errorblock" element="div" />
	
		用户名:<form:input path="username"/><br/>
		密码:<form:password path="password"/><br/>
		性别:<form:radiobutton path="gender" value="male"/>男|
		<form:radiobutton path="gender" value="female"/>女<br/>
		年龄:<form:input path="age"/><br/>
		Email:<form:input path="email"/><br/>
		<input type="submit" />
	</form:form>
</body>
</html>



需要的Jar包
validation-api-1.0.0.GA.jar(提供JSR303基本注释)
hibernate-validator-4.2.0.Final.jar(validate provider,包含验证实现类)
下面是hibernate-validator需要的jar包
log4j-1.2.17.jar
slf4j-api-1.7.2.jar
slf4j-log4j12-1.7.2.jar

猜你喜欢

转载自notafreak.iteye.com/blog/1768568