使用动态ActionForm可以减少静态ActionForm的数量,但完全可以实现静态ActionForm的所有功能。用一个非常简单的例子说明动态ActionForm的配置和使用。
1. 在 jsp 中创建一个简单的表单。
- <form action="dyna_actionform.do" method="post">
- 姓名:<input type="text" name="username"><br>
- 年龄:<input type="text" name="age"><br>
- <input type="submit" value="提交">
- </form>
2. 创建一个测试的Action。
- public class DynaActionFormTestAction extends Action {
- @Override
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response)
- throws Exception {
- DynaActionForm daf = (DynaActionForm)form;
- String username = (String)daf.get("username");
- Integer age = (Integer)daf.get("age");
- System.out.println("username=" + username);
- System.out.println("age=" + age);
- return mapping.findForward("success");
- }
- }
3. 创建一个用于跳转的 jsp 页面。
- <body>
- 姓名:${dynaForm.map.username }<br>
- 年龄:${dynaForm.map.age }<br>
- </body>
4. 配置 struts_config 文件。
- <struts-config>
- <form-beans>
- <form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">
- <form-property name="username" type="java.lang.String"/>
- <form-property name="age" type="java.lang.Integer"/>
- </form-bean>
- </form-beans>
- <action-mappings>
- <action path="/dyna_actionform"
- type="com.tzhuwb.struts.DynaActionFormTestAction"
- name="dynaForm"
- scope="request">
- <forward name="success" path="/dyna_actionform.jsp"/>
- </action>
- </action-mappings>
- </struts-config>