从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
2012-11-26 20:38
387 查看
一个网站中会有许多的表单以供使用者填写资料,越大型的网站越需要更多的 ActionForm 物件来应付表单的取值,对於一些表单来说,ActionForm只是单纯的设值、取值行为,如果为每一个表单撰写一个ActionForm,那么会是一件单纯重复且无趣的行为,而且在维护上会更加困难。
对於一些单纯的表单来说,您可以使用DynaActionForm类别,您只要在struct-config.xml中设定好相关的设定,就可以自动生成 ActionForm物件,这么一来您可以集中在struct-config.xml中管理表单物件,也可以省去不是编码与编译的工夫。
下面是使用DynaActionForm的一个例子:
struts-config.xml
注意在<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
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
对於一些单纯的表单来说,您可以使用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)
- java struts2入门学习实例--使用struts进行验证
- java struts2入门学习实例--使用struts进行验证
- java痛苦学习之路[四]---关于struts2-convention-plugin使用
- java Struts 修改本身的struts.xml,web.xml等后不用再次重启tomcat
- struts2 学习总结 ---- Struts-tags
- 系统学习SSH_Day_001_Struts2——Struts背后运行机制
- Java学习笔记-Struts2工作机制
- [Struts2 框架学习] Struts2.5 通配符动态方法调用问题
- Struts2学习总结(3)--值栈,Ognl表达式,Struts标签库,国际化,数据校验,拦截器
- java:struts学习(3)-jsp传递中文到action的解决方法,简易!!
- 【java学习之旅】——Struts2的I18n实现登陆页面中英文切换
- java 实现自动编译成json struts2 中不用配置json等jar包来实现低耦合,低入侵式ajax访问返回数据
- Struts 学习笔记之ActionForm
- JAVA学习之Struts2
- JAVA_WEB Struts2学习:使用验证框架进行校验JSP页面元素 反编译工具的配置 Strtuts2 国际化学习
- 传智播客JAVA培训struts2学习笔记3 2010-06-02
- Struts学习总结(九)---使用Struts2实现用户信息的CRUD操作(四:删除操作)
- java struts2入门学习---常用标签学习总结
- Java框架学习Struts2复选框实例代码