`

Struts 1.x | DynaActionForm (动态ActionForm)

阅读更多

struts动态ActionForm


   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

 


       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>  


      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)如何使用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[]"/>在String后面加上"[]"
               </form-bean>
           B:使用:
                        DynaActionForm frm=(DynaActionForm)form; 
                        String love[]=frm.getStrings("love");//通过getStrings方法会返回一个数组


      6)什么时候用动态ActionForm。

 

          实事上配置动态ActionForm的工作量与通过MyEclipse去生成一个ActionForm的

          工作量相当。所以如果一个表单中只有一到两个元素需要传值则考虑DynaActionForm,但是如果超过两个以上

          时,建议还是使用ActionForm    
                                                                  
     举例:

        1)使用动态ActionForm来求出让用户输入两个数与一个操作符来求出运算结果注意在同一个页面中显示结果,注意操

            作符使用单选按钮,并提供默认值.
        2)使用动态ActionForm实现商品的添加功能。注意使用oracle中触发器与sequences
              实现自动编号功能
                         CREATE   TABLE   table1  
                         (id   NUMBER   PRIMARY   KEY,  
                         username   VARCHAR2(50)
                         );      
               --建序列  
                          CREATE   SEQUENCE   table1_seq        
                    START   WITH   1  
                 INCREMENT   BY   1     
   
    --建触発器  
     CREATE   OR   REPLACE   TRIGGER   table1_tg  
     BEFORE   INSERT   ON   table1  
     FOR   EACH   ROW  
     BEGIN  
         SELECT   table1_seq.NEXTVAL   INTO   :NEW.id   FROM   DUAL;  
     END;      
     --執行  
      INSERT   INTO   table1   (username)   VALUES   ('張三');


        3)使用dynaActionForm配合checkbox实现让用户选择商品类型,查询出对应的商品,然后用户选择商品,求出应

            付款

分享到:
评论

相关推荐

    struts的总结(struts1.x)

    本文对 Struts 1.x 的核心概念和技术进行了详细介绍,包括配置文件解析、ActionForm 和 DynaActionForm 的使用、数据转换以及表单验证等方面。希望这些内容能帮助读者更好地理解和掌握 Struts 1.x 框架的使用方法。

    struts1.x上传实例

    struts1.x上传实例 struts文件上传,struts upload组件文件上传 最基本的实例,将文件上传到应用服务器里 1.upload.jsp内容 &lt;form action="fileup.do" method="post" enctype="multipart/form-data" &gt; 文件:...

    [摘]Struts 学习笔记之ActionForm

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

    Struts_学习笔记之ActionForm

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

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

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

    struts1_详解

    - **动态ActionForm**:`org.apache.struts.action.DynaActionForm`,支持动态属性的增删改查。 #### 五、Struts1 连接池与多模块操作 **5.1 数据库连接池** Struts1可以集成C3P0等连接池,但文档中提到的问题...

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

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

    struts2.1配置

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

    JavaEE学习大纲.pdf

    JavaEE学习大纲主要涵盖的是Struts1.x框架的使用和开发流程,这是一个经典的MVC(Model-View-Controller)架构的实现,用于构建企业级的Web应用程序。以下是对这些知识点的详细解释: **Struts1.x架构构建** Struts...

    struts-config.xml配置

    &lt;data-source key="exampleDS" type="org.apache.struts.action.DynaActionForm"&gt; &lt;!-- DataSource配置属性 --&gt; ``` **3. ActionForward配置** `ActionForward`定义了请求成功或失败后的页面跳转。它可以是...

    struts动态表单实例

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

    struts例子struts例子

    动态ActionForm不再需要为每个表单创建单独的FormBean类,而是通过在`struts-config.xml`配置文件中声明`&lt;form-bean&gt;`的`type`属性为`org.apache.struts.action.DynaActionForm`来创建。这样,一个动态ActionForm就...

    struts_进阶

    #### 一、Struts框架简介与动态ActionForm概念 Struts是一个基于Java EE的MVC(Model-View-Controller)框架,它为Web应用程序提供了一个结构化的解决方案。在Struts框架中,ActionForm对象扮演着极其重要的角色...

    Eclipse开发Struts1.2

    - JSP页面负责显示数据和接收用户输入,通过Struts标签库(如struts-tiles或struts-bean标签)与ActionForm或DynaActionForm交互。 通过以上步骤,你可以使用Eclipse构建一个基本的Struts1.2应用程序。不过,实际...

    struts7验证框架 struts7验证框架

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

    struts1 用到的所有jar包.rar

    1. **struts-core.jar**:这是Struts1的核心库,包含了Action、ActionForm、ActionServlet等主要组件的类。它定义了控制器层的逻辑,处理HTTP请求并转发到相应的视图或模型。 2. **struts-bean.jar**:这个JAR文件...

    struts配置文件.docx

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

    struts-1.3.10

    - **struts-bean.jar**:提供数据绑定和标签库支持,包括BeanUtils和DynaActionForm。 - **struts-html.jar**:包含HTML表单相关的标签库,如表单元素、链接、图像等。 - **struts-logic.jar**:提供逻辑控制标签,...

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

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

Global site tag (gtag.js) - Google Analytics