Working with DynaActionForms in Validator Framework
Previous | Home | Next |
Working with DynaActionForms in Validator Framework is quite easy.You can used DynaValidatorForm class instead of the DynaActionForm class.The validator framework and the DynaForms have a special relationship.DynaForms typically rely on the validator framework to perform validation.
Using a DynaActionForm instead of a custom subclass of ActionForm is relatively straightforward.
You need to make changes in two places:-
1. Change in struts-config.xml:-
change your <form-bean> to be an org.apache.struts.action.Dyna ActionForm instead of some subclass of ActionForm.<form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm" > <form-property name="userName" type="java.lang.String"/> <form-property name="password" type="java.lang.String" /> </form-bean>2. Change in your Action subclass that uses your form bean :-
a. import org.apache.struts.action.DynaActionFormb. downcast the ActionForm parameter in execute() to a DynaActionFormc. access the form fields with get(field) rather than getField()
Directory Structure of DynaActionFormExample in Struts 1.3 Using MyEclipse IDEindex.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 DynaActionForm example</title> </head> <body> <h3>Struts DynaActionForm example</h3> <html:form action="/myaction"> <bean:message key="label.name"/>: <html:text property="name"/><br/> <bean:message key="label.password"/>: <html:password property="password"/><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="dynaForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="name" type="java.lang.String"/> <form-property name="password" type="java.lang.String"/> </form-bean> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action attribute="dynaForm" input="/index.jsp" name="dynaForm" path="/myaction" scope="request" type="org.r4r.struts.DynaAction" cancellable="true" > <forward name="success" path="/success.jsp"></forward> </action> </action-mappings> <message-resources parameter="org.r4r.struts.ApplicationResources" /> </struts-config>DynaAction.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 DynaAction extends Action { public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception{ return mapping.findForward("success"); } }ApplicationResources.properties#label message label.name = User Name label.password = Password label.submit = Submit label.reset = Resetsuccess.jsp<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <html> <head> <title>Struts DynaActionForm example</title> </head> <body> <h3>Struts DynaActionForm Example</h3> <h4>Welcome , <bean:write name="dynaForm" property="name" /></h4> <h4>Your password , <bean:write name="dynaForm" property="password" /></h4> </body> </html>Output
Previous | Home | Next |