在struts中,我们都知道每个一个页面请求要传递值一般都要带一个ActionForm来得到传递的值,一般我们都称这种的为静态的ActionForm,但还有一种传递方式为动态的,名为DynaActionForm.下面将演示实现的具体过程。
(1)创建页面index.jsp,在其页面中做成如下:
<h1>测试ActionForm</h1>
<hr>
<li>动态ActionForm</li>
<form action="action.do" method="post">
姓名:<input type="text" name="username"><br/>
年龄:<input type="text" name="age"><br/>
<input type="submit" value="login">
</form>
(2)DynaActionForm的传值是由struts-config.xml来配置的,代码如下:
<form-beans>
<form-bean name="dyanForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String"></form-property>
<form-property name="age" type="java.lang.String"></form-property></form-bean>
<form-bean name="uploadForm" type="com.mao.struts.UploadActionForm"></form-bean></form-beans>
<action-mappings>
<action path="/action" name="dyanForm" scope="request"
type="com.mao.struts.DynaAction">
<forward name="success" path="/show.jsp"></forward>
</action></action-mappings>
(3)完成后我们也将给它创建一个Action,并在其execute方法里写入,代码如下:
DynaActionForm daf=(DynaActionForm)form;
return mapping.findForward("success");
(4)最后导向显示页面show.jsp.我们可以直接用jsp码写,或是用el表达示写:
<h1>得到数据</h1>
<hr>
<!-- <%
DynaActionForm daf=(DynaActionForm)request.getAttribute("dyanForm");
%>
<%=daf.getString("username") %>
<%=daf.getString("age") %> -->
${dyanForm.map.username} <br/>
${dyanForm.map.age }
(5)OK!其中我们可以把动态DynaActionForm看成静态ActionForm的其中一种,运用上看各人的需求。