从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
来源:互联网 发布:java 正则表达式 * 编辑:程序博客网 时间:2024/06/18 17:38
使用DynaActionForm
2006年12月05日 星期二 下午 01:26
一个网站中会有许多的表单以供使用者填写资料,越大型的网站越需要更多的 ActionForm 物件来应付表单的取值,对於一些表单来说,ActionForm只是单纯的设值、取值行为,如果为每一个表单撰写一个ActionForm,那么会是一件单纯重复且无趣的行为,而且在维护上会更加困难。
对於一些单纯的表单来说,您可以使用DynaActionForm类别,您只要在struct-config.xml中设定好相关的设定,就可以自动生成 ActionForm物件,这么一来您可以集中在struct-config.xml中管理表单物件,也可以省去不是编码与编译的工夫。
下面是使用DynaActionForm的一个例子:
注意在<form-bean>的type属性,设定使用 org.apache.struts.action.DynaActionForm,而Form的属性则使用<form-property> 标签来设定,DymaActionForm的type属性希望得到的一个Java类别名称,所以对於基本资料型态如int,必须以 java.lang.Integer作为Wrapper类别包装。
ActionForm类别的reset()方法预设什么事都不作,除非您重新定义它,DynaActionForm则预设会将所有的资料重设为Java型态的预设值,例如数字重设为0,而Object则重设为null,您也可以使用initial属性来设定重设的值。
DynaActionForm同样也被当作参数传递给execute()方法,DynaActionForm使用Map型态的方法来取值,下面的 Action类别示范了如何取得DynaActionForm的属性值:
对於一些单纯的表单来说,您可以使用DynaActionForm类别,您只要在struct-config.xml中设定好相关的设定,就可以自动生成 ActionForm物件,这么一来您可以集中在struct-config.xml中管理表单物件,也可以省去不是编码与编译的工夫。
下面是使用DynaActionForm的一个例子:
- struts-config.xml
<form-beans> <form-bean name="userForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="name" type="java.lang.String" initial="nobody"/> <form-property name="password" type="java.lang.String" initial="nopass"/> </form-bean> </form-beans> <action-mappings> <action path="/LoginAction" type="onlyfun.caterpillar.LoginAction" name="userForm"> <forward name="helloUser" path="/WEB-INF/pages/hello.jsp"/> .... </action> </action-mappings> ....
注意在<form-bean>的type属性,设定使用 org.apache.struts.action.DynaActionForm,而Form的属性则使用<form-property> 标签来设定,DymaActionForm的type属性希望得到的一个Java类别名称,所以对於基本资料型态如int,必须以 java.lang.Integer作为Wrapper类别包装。
ActionForm类别的reset()方法预设什么事都不作,除非您重新定义它,DynaActionForm则预设会将所有的资料重设为Java型态的预设值,例如数字重设为0,而Object则重设为null,您也可以使用initial属性来设定重设的值。
DynaActionForm同样也被当作参数传递给execute()方法,DynaActionForm使用Map型态的方法来取值,下面的 Action类别示范了如何取得DynaActionForm的属性值:
- LoginAction.java
package onlyfun.caterpillar; import javax.servlet.http.*; import org.apache.struts.action.*; public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm dynaForm = (DynaActionForm) form; String name = (String) dynaForm.get("name"); String password = (String) dynaForm.get("password"); .... } }
DynaActionForm预设并没有为validate()方法提供任何行为,如果需要的话,您可以透过继承DynaActionForm来定义 validate()方法,并於<form-bean>的type中设定为您所撰写的类别。
DynaActionForm支持以下数据类型:
- java.lang.BigDecimal
- java.lang.BigInteger
- boolean and java.lang.Boolean
- byte and java.lang.Byte
- char and java.lang.Character
- java.lang.Class
- double and java.lang.Double
- float and java.lang.Float
- int and java.lang.Integer
- long and java.lang.Long
- short and java.lang.Short
- java.lang.String
- java.sql.Date 不是util.Date
- java.sql.Time
- java.sql.Timestamp
- 从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
- 从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
- Struts的动态ActionForm(DynaActionForm)
- 自学SSH框架之---struts(五):动态的ActionForm(DynaActionForm)
- DynaActionForm类 支持Map的ActionForm(Map-backed ActionForm)
- 收刮文章:Struts中ActionForm和ValidatorForm,ActionForm和DynaActionForm的区别
- struts中的DynaActionForm类和ActionForm类
- 程序人生(程序篇- DynaActionForm类&支持Map的ActionForm(Map-backed ActionForm))
- Struts 的DynaActionForm
- 保持struts-config.xml不变,将动态Form org.apache.struts.action.DynaActionForm转化成ActionForm的例子
- struts中DynaActionForm的使用
- DynaActionForm--动态ActionForm
- Struts1.2中ActionForm与ValidatorForm、DynaActionForm的区别
- Struts1.2中ActionForm与ValidatorForm、DynaActionForm的区别
- struts入门学习(struts中ActionForm,Action,javabean的运行机制 )
- Struts 1 学习笔记-4-3(Struts中ActionForm的类型自动转换)
- Struts(四)ActionForm
- Struts(四)ActionForm
- 线程池1
- C#弹出选择对话框(退出时判断有用)
- XenAPI
- Android ListView ListActivity PreferenceActivity背景变黑的问题
- fedora所有历史版本的下载地址
- 从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
- 翻转字符句子中单词顺序
- 输出当前时间
- USACO Section 2.2 Runaround Numbers - 又一个枚举的思想
- R Graph Cookbook 代码(chapter5-10)
- ABAP 动态的实现任意表的ALV显示
- 动态内表及动态ALV显示
- da
- Android RSS解析步骤(sax)