Introductions of the Validator Framework

Introductions of the Validator Framework

Previous Home Next

 

Validation is the powerful concept in struts framework. The Validator framework is used to validate fields.
Struts Framework provides the functionality to validate the form data.You can validate the data on the client side as on the server side.

 
The Validator framework provides many common validation rules. In addition to the common validation rules, you can write your own rules using the Validator framework.

The Validator Framework uses two XML configuration files:-

1. validator-rules.xml :
-The validator-rules.xml defines the standard validation routines, these are reusable and used in validation.xml. to define the form specific validations.

2. validation.xml.:-  The validation.xml defines the validations applied to a form bean.

Directory Structure of ValidationExample in Struts 1.3 Using MyEclipse IDE




index.jsp

<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
<title><bean:message key="label.title"/></title>
</head>
<div style="color: red;">
<html:errors/>
</div>
<h3><bean:message key="label.header"/></h3>
<html:form action="/validationAction">
<bean:message key="label.name"/>:
<html:text property="name" name="validationForm"/><br/>
<bean:message key="label.password"/>:
<html:text property="password" name="validationForm"/><br/>
<br/>
<html:submit><bean:message key="label.submit"/></html:submit>
<html:reset><bean:message key="label.reset"/></html:reset>
</html:form>
</html>

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
 
<web-app>
  <display-name>Maven Struts Examples</display-name> 
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
        org.apache.struts.action.ActionServlet
    </servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
         /WEB-INF/struts-config.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet> 
  <servlet-mapping>
       <servlet-name>action</servlet-name>
       <url-pattern>*.do</url-pattern>
  </servlet-mapping> 
</web-app>

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans >
<form-bean name="validationForm" type="org.r4r.struts.ValidationForm"/>
</form-beans>
<global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="validationForm"
      input="/index.jsp"
      name="validationForm"
      path="/validationAction"
      scope="request"
      type="org.r4r.struts.ValidAction"
      cancellable="true">
      <forward name="success" path="/success.jsp" />
    </action>
  </action-mappings>
  <message-resources parameter="org.r4r.struts.ApplicationResources" />
</struts-config>

ValidationForm.java

package org.r4r.struts;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

@SuppressWarnings("serial")
public class ValidationForm extends ActionForm {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		if (name == null || name.length() < 1) {
		errors.add("name", new ActionMessage("error.name.required"));
		}
		if (password == null || password.length() < 1) {
		errors.add("password", new ActionMessage("error.password.required"));
		}
		return errors;
		}
	}

ValidationAction.java

package org.r4r.struts;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class ValidAction extends Action {

public ActionForward execute ( ActionMapping mapping,ActionForm form, 
HttpServletRequest request,HttpServletResponse response)  
throws Exception{ 
@SuppressWarnings("unused")
ValidationForm validationForm = (ValidationForm) form;
return mapping.findForward("success");
}
}

ApplicationResources.properties

#label message
label.title=Struts Validation Example
label.header=Struts Validation Example
label.name = User Name 
label.password = Password
label.submit = Submit
label.reset = Reset
error.name.required= Name is required<br/>
error.password.required= Password is required

success.jsp

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
<title><bean:message key="label.title"/></title>
</head>
<body>
<h3><bean:message key="label.header"/></h3>
<h4>Welcome , <bean:write name="validationForm" property="name"/></h4>
</body>
</html>

Output




Previous Home Next