struts1——静态ActionForm与动态ActionForm

      在struts1中,我们可以使用ActionForm来获取从client端提交上来的数据,并通过action配置中的name属性,将某个ActionForm配置到某次请求应答的Action中,作为本次请求应答的数据传输介质,ps,其实还是侧重于数据在客户端的获取,因为赋值部分框架帮我们做好了。

          对于ActionForm的使用,我们有两种方式:一是通过建立类的方式,二是直接写入配置文件的方式。

一,静态ActionForm的使用

            首先我们需要定义类,注意这个类要继承ActionForm类:

       定义好类之后,将我们要获取的客户端数据作为成员变量写入类中,确保get后面的名称首字母小写后,与我们客户端提交的数据的name名称一致。

       之后,在struts的配置文件中配置此类:

    为了关联ActionForm与Action关系,还需要在Action的name配置中,指明此Action使用的是哪个form-bean:

 

 在Action中获取request中的数据,只需强转成我们定义的ActionForm类即可:

二,动态ActionForm使用

         如果我们系统比较大的话,试想一下,我们要为每一个Action配置一个ActionForm类来实现数据的传递,这样的话,ActionForm就比较多。这时候,我们可以使用动态ActionForm将ActionForm配置在配置文件中.

       

      动态ActionForm的type都要配置成 :   type="org.apache.struts.action.DynaActionForm" ,将类的property指明类型之后配置到form-property中。

   服务端取值:

     

      动态ActionForm的值都存储到一个map中,key-value形式,key为我们配置文件中的form-property的name的值,得到value之后进行强转。

  表现层取值:

三,静态ActionForm跟动态ActionForm的比较

1,两种ActionForm都能实现相同的功能:比如数据验证,reset数据。

2,使用类的方式缺点是项目大的话,类较多,每次增加,都要重新编译;但是Action中取值简单;

3,使用动态ActionForm省去了类,只需在配置文件中配置,方便修改,缺点是取值不方便,map里面get的时候,如果key指明的不正确,容易出错。

时间: 2024-08-08 14:53:34

struts1——静态ActionForm与动态ActionForm的相关文章

关于Linux静态库和动态库的分析

原文:http://linux.chinaunix.net/techdoc/net/2009/02/04/1060670.shtml 1.什么是库 在windows平台和linux平台下都大量存在着库.本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的本质不同,因此二者库的二进制是不兼容的. 本文仅限于介绍linux下的库.2.库的种类linux下的库有两种:静态库和共享库(动态库). 二者的不同点在于代码被载入的时刻不同.静态库的代码在编译

android: 静态XML和动态加载XML混合使用,以及重写Layout控件

近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件.程序目标无非是:高效.轻巧.清晰.标准化   完成动态加载Layout有两种方法,依据个人喜好进行选择:   方法1:静态主Layout动态加载静态子Layout   首先构建子Layout:main2 [xhtml] view plaincopy <?xml version="1.0" encoding="utf-8"?>   <!--布局可以任意定义,此处拿线性

ASP入门教程-静态网页和动态网页

静态网页与动态网页的区别在于Web服务器对它处理方式不同.了解这种区别对于ASP概念的理解至关重要. 1.静态网页 静态网页是标准的HTML文件,其文件扩展名是.htm或.html.它可以包含HTML标记.文本.Jave小程序.客户端脚本以及客户端ActiveX控件,但这种网页不包含任何服务器端脚本,该页中的每一行HTML代码都是在放置到Web服务器前由网页设计人员编写的,在放置到Web服务器后便不再发生任何更改,所以称之为静态网页. 静态网页的处理流程如下图: 步骤1:Web浏览器请求静态网页

思科模拟器静态路由和动态路由配置

思科模拟器 静态路由,动态路由 RIP配置 动态路由协议 RIP 命令就两行比较简单 实验拓扑图如下: 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Network/lyjs/ 要想实现pc1 和pc2 通讯就要对R1 ,R2,R3 进行配置 1. 静态配置命令格式如下: 对于R1 Router>en Router#conf Configuring from terminal, memory, or network [terminal]?

静态网页VS动态网页

         在做<牛腩新闻发布系统>的时候,建立的网页有.html的,还有.aspx,刚开始接触,还以为这些东西是一样的呢,当看ASP.NET视频的时候,听见里面讲课的老师有提到了这两样,原来是静态网页和动态网页之分.           静态网页          网页里面没有程序代码,不被服务器执行,静态网页每个静态网页都有一个固定的URL,通常以.htm..html等常见形式为后缀,网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就

java gif 帧数-java如何获取gif帧或者区分静态gif和动态gif

问题描述 java如何获取gif帧或者区分静态gif和动态gif java语音怎么获取gif图的帧数,或者有什么第三方jar可以做到? 另外程序如何区分静态的gif和动态的gif

《圣殿祭司的ASP.NET4.0专家技术手册》----2-3 C# 4.0静态基础融入动态能力

2-3 C# 4.0静态基础融入动态能力 圣殿祭司的ASP.NET4.0专家技术手册 在了解静态与动态语言后,大家直觉上可能会以为这是二元的对立,非黑即白,不是静态语言,就是动态语言.但您是否想过静态和动态之间是可以兼具或混合的可能性?例如,静态语言为获取动态语言优点,而融入了一些动态语言的功能,然后又保持静态语言的优势,如类型安全.优化.高效率. 是的,.NET 4.0正是以这个方向去改造,在原本C#.VB静态语言基础上,加上动态语言的一些特性与优势,这样就达到以静态为主,动态为辅之目的,让C

C++静态库与动态库

C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书<程序员的自我修养--链接.装载与库>. 什么是库 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.库有两种:静态库(.a..lib

静态库和动态库的区别以及使用

问题描述 静态库和动态库的区别以及使用 什么是动态链接库和静态链接库?它们有什么区别?它们分别如何使用? 解决方案 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种.? 静态库和动态库的区别 静态函数库 ??? 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了.当然这也会成为他的....