`

[转载]DynaActionForm (动态ActionForm)

 
阅读更多

文章来源: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    

 

分享到:
评论

相关推荐

    struts课堂资料\第五章(动态ActionForm与控制器)2

    动态ActionForm通过实现org.apache.struts.action.DynaActionForm接口实现,它的属性可以通过Map对象动态添加和访问。 **ActionForm中的reset()方法**:在用户提交表单前,如果在ActionForm中有预设值,reset()方法...

    Struts_学习笔记之ActionForm

    DynaActionForm继承自ActionForm,提供了动态Bean的功能,而ValidatorForm继承自ActionForm,提供了表单验证功能。 2. ActionForm的方法 ActionForm提供了两个重要的方法:reset()和validate()。reset()方法用于...

    Struts framework中DynaActionForm(动态表单)介绍及应用

    DynaActionForm(动态表单)介绍及应用,Struts framework中,ActionForm对象的封装及应用,通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置...

    struts_进阶

    如果希望在每次将表单数据组装到动态ActionForm之前先重置所有属性至默认值,可以通过定义一个扩展`DynaActionForm`类的子类,并覆盖其`reset()`方法来实现。具体做法是在`reset()`方法中调用`initialize()`方法。 ...

    struts1配置文件中DynaActionForm的使用

    用jsp、action、struts-config.xml配置文件,举例说明了DynaActionForm 在struts1 中的作用。

    [摘]Struts 学习笔记之ActionForm

    博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...

    struts例子struts例子

    为了解决上述问题,Struts 1.1引入了动态ActionForm(DynaActionForm)。动态ActionForm不再需要为每个表单创建单独的FormBean类,而是通过在`struts-config.xml`配置文件中声明`&lt;form-bean&gt;`的`type`属性为`org....

    struts动态表单实例

    3. ** DynaActionForm**: 这是Struts中的动态表单类,相比于传统的ActionForm,DynaActionForm不需要预先定义字段。它的字段可以在运行时动态添加,这使得表单的结构可以根据服务器端的业务逻辑改变。 4. **Struts-...

    Struts原理(二)

    DynaActionForm是Struts中的动态表单类,与传统的ActionForm不同,它不需要预先定义字段。DynaActionForm允许我们在运行时动态添加、删除和访问属性,提高了灵活性。这在处理不确定或动态数据模型时非常有用。通过在...

    Struts高级部分(2)(常用Action、验证框架、动态Form)笔记

    接下来,我们讨论动态ActionForm——**DynaActionForm**。DynaActionForm允许我们在运行时动态定义表单字段,这极大地减少了ActionForm类的数量。然而,使用DynaActionForm的一个挑战是它不支持内置的验证功能。 ...

    Struts高级部分(2)(常用Action、验证框架、动态Form

    2. **JSP标签库**:Struts提供了` DynaActionForm`和`DynaValidatorForm`,它们是动态Form的基础。在JSP页面中,可以使用Struts的标签库动态显示和处理表单字段。 3. **ModelDriven接口**:ModelDriven接口允许...

    Struts1.3 备忘笔记

    05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,但是它不能实现验证功能,演示人机交互实例。 06 Struts_06Filter : 中文编码的统一处理,通过Struct的请求...

    采购员子系统开发案例精品

    - **实现方式**:在Struts配置文件`struts-config.xml`中,通过指定`&lt;form-bean&gt;`的`type`属性值为`org.apache.struts.action.DynaActionForm`来创建动态ActionForm。此类能够在内部Map中存储数据。 #### 三、采购...

    struts_dynForm用例

    在上述配置中,`DynaActionForm`代替了常规的`ActionForm`,它允许我们在运行时动态添加或删除属性。`dynamicProperties`是一个Map,用于存储表单的所有动态字段及其值。 接下来,在Action类(如`DynFormAction`)...

    struts7验证框架 struts7验证框架

    为了解决这个问题,Struts引入了DynaActionForm,这是一种动态ActionForm,它允许开发者不再需要手动创建ActionForm类,而是通过配置文件(struts-config.xml)来定义表单字段及其属性。 DynaActionForm是基于org....

    北大青鸟 ACCP5.0 SSH总结

    - **DynaActionForm**:动态表单类,允许在运行时动态定义属性,简化了表单数据的绑定。例如,通过`&lt;form-bean&gt;`标签配置DynaActionForm,并在Java代码中使用`DynaActionForm`的get和set方法获取或设置值。 - **...

    struts的总结(struts1.x)

    DynaActionForm 是一种特殊的 ActionForm,它可以动态地管理表单字段。它继承自 `org.apache.struts.action.DynaActionForm` 类,并且可以通过 `&lt;form-property&gt;` 标签在 `struts-config.xml` 文件中定义表单字段。 ...

    Struts1.2动态FormBean加验证功能的一个例子

    在传统的Struts1应用中,每个ActionForm Bean都是一个Java类,它对应于HTML表单的字段,并负责在服务器端存储和验证用户输入的数据。动态FormBean的概念则是通过配置文件来定义表单字段,而不是创建单独的Java类。...

    struts配置文件.docx

    同时,对于DynaActionForm类型,由于其动态属性的特性,某些标签的属性配置会有所不同,如不能在JSP中直接指定`name`和`type`属性。总的来说,熟练掌握Struts配置文件和相关标签,能够帮助开发者更高效地构建功能...

    struts2.1配置

    8. **动态ActionForm**:Struts2提供了动态ActionForm,它允许在运行时动态地创建表单属性,无需为每个ActionForm创建单独的Java类。在struts.xml中定义一个DynaActionForm,然后在Action中通过DynaActionForm获取...

Global site tag (gtag.js) - Google Analytics