ActionErrors and ActionError

ActionErrors and ActionError

Previous Home Next

 

ActionError and ActionErrors both class extends ActionMessage class.ActionError class encapsulation a single error message.ActionErrors class which acts as a container for a collection of ActionError instances.

 In struts framework,There are two class for error management:-

  • ActionError(Is Deprecated and will removed in future)
  • ActionErrors

Validation errors are either global to the entire ActionForm bean or specific to a particular bean property.
ActionError class is composed of constructors and a single method that allow Add ActionError object to the current collection of ActionErrors.
There are two add() method that shows how ActionError object can be added
to the ActionErrors collection.

Example :-

Directory Structure of ErrorsTagExample 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>Struts html:errors tag example</title>
</head>
<body>
<h3>Struts html:errors tag example</h3>
<div style="color: red;">
<html:errors/>
</div>
<html:form action="/errorsAction">
<bean:message key="label.name"/>:
<html:text property="name" name="errorsForm"/><br/>
<bean:message key="label.password"/>:
<html:text property="password" name="errorsForm"/><br/>
<br/>
<html:submit><bean:message key="label.submit" /></html:submit>
<html:reset><bean:message key="label.reset" /></html:reset>
</html:form>
</body>
</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="errorsForm" type="org.r4r.struts.ErrorsForm"/>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action path="/errors" type="org.apache.struts.actions.ForwardAction" parameter="/index.jsp"/>
<action path="/errorsAction" type="org.r4r.struts.ErrorsAction" name="errorsForm" input="/index.jsp">	
<forward name="success" path="/success.jsp"/>
</action>
</action-mappings>
<message-resources parameter="org.r4r.struts.ApplicationResources" />
</struts-config>

ErrorsForm.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 ErrorsForm 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;
		}
}

ErrorsAction.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 ErrorsAction extends Action {
	public ActionForward execute(ActionMapping mapping,ActionForm form,
	HttpServletRequest request,HttpServletResponse response) 
	throws Exception{
		@SuppressWarnings("unused")
		ErrorsForm passwordForm=(ErrorsForm)form;
		return mapping.findForward("success");
	}
}

ApplicationResources.properties

#label message
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>Struts html:errors tag example</title>
</head>
<body>
<h3>Struts html:errors tag Example</h3>
<h4>Welcome , <bean:write name="errorsForm" property="name" /></h4>
</body>
</html>

Output




Previous Home Next