Using a Workflow Form in Validator Framework
Previous | Home | Next |
In this Chapter,We will use a Workflow Form in Validator Framework. Workflow form in validator framwork are logical groupings of actions following each other in a rather simple, mostly linear or circular way.
You can used the page attribute of the field element.When We will working to make the page attribute,the validatorForm includes a page property.You must include the current page in your jsp input pages with the hidden field that corresponds to the page property.The following step process :-1. change the action to subclass DispatchAction.2. Create 2 Action Mapping entries into the struts-config.xml file3 Create two method with the same signature as the execute method in action class4. Add the method field to the ActionForm class.5. Create two jsp pages ,one page for each step.6. Ensure each input jsp page passes the page property.7. Ensure the first jsp page also passes which method to invoke on second method.8. modify the validation.xml file,add the page attribute for the field in the form.Directory Structure of MessagesTagExample 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:messages tag example</title> </head> <body> <h3>Struts html:messages tag example</h3> <div style="color: red;"> <html:messages id="errorName" property="name"> <bean:write name="errorName" /> </html:messages><br/> <html:messages id="errorPassword" property="password"> <bean:write name="errorPassword" /> </html:messages> </div> <html:form action="/messagesAction"> <bean:message key="label.name"/>: <html:text property="name" name="messagesForm"/><br/> <bean:message key="label.password"/>: <html:text property="password" name="messagesForm"/><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="messagesForm" type="org.r4r.struts.MessagesForm"/> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action path="/messages" type="org.apache.struts.actions.ForwardAction" parameter="/index.jsp"/> <action path="/messagesAction" type="org.r4r.struts.MessagesAction" name="messagesForm" input="/index.jsp"> <forward name="success" path="/success.jsp"/> </action> </action-mappings> <message-resources parameter="org.r4r.struts.ApplicationResources" /> </struts-config>MessagesForm.javapackage 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 MessagesForm 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; } }MessagesAction.javapackage 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 MessagesAction extends Action { public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception{ @SuppressWarnings("unused") MessagesForm passwordForm=(MessagesForm)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 error.password.required= Password is requiredsuccess.jsp<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <html> <head> <title>Struts html:messages tag example</title> </head> <body> <h3>Struts html:messages tag Example</h3> <h4>Welcome , <bean:write name="messagesForm" property="name" /></h4> </body> </html>Output
Previous | Home | Next |