文章来源:http://ray-lin.javaeye.com/blog/368437
1)什么是动态ActionForm
动态ActionForm是struts从1.1版本开始引入一项新的技术,即在创建ActionForm时可以不用通过编程的方式而只要通过struts-config.xml文件中进行配置,以后在struts运行时,会自动根 据struts-config.xml中配置的DynaActionform来生成一个Action实例
2)为什么要使用DynaActionform
很显然随着应用程序的变大,数百个ActionForm 这样不仅编程起来麻烦,以后维护起来也麻烦,比如:
某个属性变化了,则需要修改源代码,然后重新编译,但是如果使用DynaActionform则只需要修改 struts-config.xml配置文件就行了。这样提高了应用程序的开发效率与应用程序的可维护性
3) 如何使用DynaActionform
3.1) 在struts-config.xml中创建一个DynaActionform
<form-beans > <form-bean name="dynaActionForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="num1" type="java.lang.String"/> <form-property name="num2" type="java.lang.String"/> </form-bean> </form-beans>
3.2) 从上面的配置可以看出,动态ActionForm的配置必须增加forms-property元素
且每个forms-property包含两个属性
A:name 属性的名字,该属性必须与jsp页面的表单元素的名字一致
B:type 属性的类型。强烈建议把类型都设置为String,以后在Action中再去转换
C:类型不能直接写String一定要写上java.lang.String
D:动态ActionForm的type必须要写org.apache.struts.action.DynaActionForm
它是struts中内置的一个用于创建动态ActionForm的一个父类
3.3) 如何使用DynaActionForm
在与之对应的Action中的Excute中写上代码,然后通过其get方法就行了:
DynaActionForm frm=(DynaActionForm)form; //取出动态ActionForm frm.get("在struts-config.xml为动态Action配置的属性名");
比如:
int num1=Integer.parseInt(frm.get("num1").toString()); String userName=frm.get("userName").toString(); double price=Double.parseDouble(frm.get("price").toString());
4) 通过"initial"给DynaActionForm增加默认值:
<form-bean name="dynaActionForm" type="org.apache.struts.action.DynaActionForm"> <form-property initial="1" name="num1" type="java.lang.String"/> <form-property initial="2" name="num2" type="java.lang.String"/> </form-bean>
5) 如何在DynaActionForm中配合checkBox使用数组属性:
A:配置:
<form-bean name="dynaActionForm"type="org.apache.struts.action.DynaActionForm"> <form-property name="love" type="java.lang.String[]"/> </form-bean>
B:使用:
DynaActionForm frm=(DynaActionForm)form; String love[]=frm.getStrings("love");//通过getStrings方法会返回一个数组
6) 什么时候用动态ActionForm。
事实上配置动态ActionForm的工作量与通过MyEclipse去生成一个ActionForm的工作量相当。所以如果一个表单中只有一到两个元素需要传值则考虑DynaActionForm,但是如果超过两个以上 时,建议还是使用ActionForm
相关推荐
动态ActionForm通过实现org.apache.struts.action.DynaActionForm接口实现,它的属性可以通过Map对象动态添加和访问。 **ActionForm中的reset()方法**:在用户提交表单前,如果在ActionForm中有预设值,reset()方法...
DynaActionForm继承自ActionForm,提供了动态Bean的功能,而ValidatorForm继承自ActionForm,提供了表单验证功能。 2. ActionForm的方法 ActionForm提供了两个重要的方法:reset()和validate()。reset()方法用于...
DynaActionForm(动态表单)介绍及应用,Struts framework中,ActionForm对象的封装及应用,通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置...
如果希望在每次将表单数据组装到动态ActionForm之前先重置所有属性至默认值,可以通过定义一个扩展`DynaActionForm`类的子类,并覆盖其`reset()`方法来实现。具体做法是在`reset()`方法中调用`initialize()`方法。 ...
用jsp、action、struts-config.xml配置文件,举例说明了DynaActionForm 在struts1 中的作用。
博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...
为了解决上述问题,Struts 1.1引入了动态ActionForm(DynaActionForm)。动态ActionForm不再需要为每个表单创建单独的FormBean类,而是通过在`struts-config.xml`配置文件中声明`<form-bean>`的`type`属性为`org....
3. ** DynaActionForm**: 这是Struts中的动态表单类,相比于传统的ActionForm,DynaActionForm不需要预先定义字段。它的字段可以在运行时动态添加,这使得表单的结构可以根据服务器端的业务逻辑改变。 4. **Struts-...
DynaActionForm是Struts中的动态表单类,与传统的ActionForm不同,它不需要预先定义字段。DynaActionForm允许我们在运行时动态添加、删除和访问属性,提高了灵活性。这在处理不确定或动态数据模型时非常有用。通过在...
接下来,我们讨论动态ActionForm——**DynaActionForm**。DynaActionForm允许我们在运行时动态定义表单字段,这极大地减少了ActionForm类的数量。然而,使用DynaActionForm的一个挑战是它不支持内置的验证功能。 ...
2. **JSP标签库**:Struts提供了` DynaActionForm`和`DynaValidatorForm`,它们是动态Form的基础。在JSP页面中,可以使用Struts的标签库动态显示和处理表单字段。 3. **ModelDriven接口**:ModelDriven接口允许...
05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,但是它不能实现验证功能,演示人机交互实例。 06 Struts_06Filter : 中文编码的统一处理,通过Struct的请求...
- **实现方式**:在Struts配置文件`struts-config.xml`中,通过指定`<form-bean>`的`type`属性值为`org.apache.struts.action.DynaActionForm`来创建动态ActionForm。此类能够在内部Map中存储数据。 #### 三、采购...
在上述配置中,`DynaActionForm`代替了常规的`ActionForm`,它允许我们在运行时动态添加或删除属性。`dynamicProperties`是一个Map,用于存储表单的所有动态字段及其值。 接下来,在Action类(如`DynFormAction`)...
为了解决这个问题,Struts引入了DynaActionForm,这是一种动态ActionForm,它允许开发者不再需要手动创建ActionForm类,而是通过配置文件(struts-config.xml)来定义表单字段及其属性。 DynaActionForm是基于org....
- **DynaActionForm**:动态表单类,允许在运行时动态定义属性,简化了表单数据的绑定。例如,通过`<form-bean>`标签配置DynaActionForm,并在Java代码中使用`DynaActionForm`的get和set方法获取或设置值。 - **...
DynaActionForm 是一种特殊的 ActionForm,它可以动态地管理表单字段。它继承自 `org.apache.struts.action.DynaActionForm` 类,并且可以通过 `<form-property>` 标签在 `struts-config.xml` 文件中定义表单字段。 ...
在传统的Struts1应用中,每个ActionForm Bean都是一个Java类,它对应于HTML表单的字段,并负责在服务器端存储和验证用户输入的数据。动态FormBean的概念则是通过配置文件来定义表单字段,而不是创建单独的Java类。...
同时,对于DynaActionForm类型,由于其动态属性的特性,某些标签的属性配置会有所不同,如不能在JSP中直接指定`name`和`type`属性。总的来说,熟练掌握Struts配置文件和相关标签,能够帮助开发者更高效地构建功能...
8. **动态ActionForm**:Struts2提供了动态ActionForm,它允许在运行时动态地创建表单属性,无需为每个ActionForm创建单独的Java类。在struts.xml中定义一个DynaActionForm,然后在Action中通过DynaActionForm获取...