Searching...
Thursday, 8 August 2013

Spring Form Validation Example

13:31

Here is one simple example to validate form (Student form). Spring API providers Validator interface to implement form validations. To implement validation we have to create a validator class which implements the Validator interface and should override validate() method. In this example i am going to validate two text field for Student form

1. Create a Validator class

Create a dynamic web project in Eclipse and add all spring mvc related jars in the web/lib folder, see this example for more details (Spring MVC Example). Once we created the web application create a Validator class.

package com.pretech;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import com.pretech.Student;
public class StudentValidator implements Validator {
	
	public boolean supports(Class<?> clazz) {
		return Student.class.isAssignableFrom(clazz);
	}
	public void validate(Object target, Errors errors) {
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "name.required");
		ValidationUtils.rejectIfEmpty(errors, "address", "address.required");
		Student student = (Student) target;
		
	}
}

2. Add Validator details into dispatcher-servlet.xml

<bean id="StudentValidator" class="com.pretech.StudentValidator" />

3. Message.properties



Create  message.properties and placed in to src folder with below properties

name.required = Student Name should not be blank
address.required = Student Address should not be blank

Add below Message Resources in despatcher-servlet.xml file

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="messages" />



4. Add Validator reference to the bean which we are going to validate

<bean name="/studentRegistration.htm" class="com.pretech.StudentController"
  p:formView="StudentDetails" p:successView="SuccessPage" p:validator-ref="StudentValidator" />

5. Add form error details in to JSP page to display

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="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=ISO-8859-1">
<title>Student Registration Page</title>
<style>
.error {
color: #ff0000;
font-style: italic;
}
</style>
</head>
<body>
<form:form method="POST" commandName="student">
	<table>
		<tr>
			<td>Enter Student Name :</td>
			<td><form:input path="name" /></td>
			<td><form:errors path="name" cssClass="error" /></td>
		</tr>
		<tr>
			<td>Enter Student Address :</td>
			<td><form:input path="address" /></td>
			<td><form:errors path="address" cssClass="error" /></td>
		</tr>
		
		<tr>
			<td colspan="3"><input type="submit" value="Register"></td>
		</tr>
	</table>
</form:form>
</body>
</html>

6. Deploy and run application


To test the validator click on Register button without any values


image


7. Download Example


Spring MVC Form Validation Example

0 comments: