struts1——静态ActionForm与动态ActionForm
在struts1中,我们能够使用ActionForm来获取从client端提交上来的数据。并通过action配置中的name属性。将某个ActionForm配置到某次请求应答的Action中。作为本次请求应答的传输数据介质,ps,事实上还是側重于数据在client的获取。由于赋值部分框架帮我们做好了。
对于ActionForm的使用。我们有两种方式:一是通过建立类的方式,二是直接写入配置文件的方式。
一,静态ActionForm的使用
首先我们须要定义类。注意这个类要继承ActionForm类:
定义好类之后。将我们要获取的client数据作为成员变量写入类中,确保get后面的名称首字母小写后,与我们client提交的数据的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指明的不对,easy出错。
struts1——静态ActionForm与动态ActionForm的更多相关文章
- Struts框架——(三)动态ActionForm
一.DynaActionForm的引入意义 使用ActionForm把表单数据单独封装起来,而且提供了自动的数据验证,简化了代码的编写,给我们带来了极大的方便. 但是,ActionForm也存在一些明 ...
- DynaActionForm(动态ActionForm)的使用
在struts中利用DynaActionForm(动态ActionForm)可以节省代码的编写. 1.在struts-config.xml中配置DynaActionForm:加入这个Form中有三个属 ...
- Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现)
Android GradientDrawable使用优势: 1. 快速实现一些基本图形(线,矩形,圆,椭圆,圆环) 2. 快速实现一些圆角,渐变,阴影等效果 3. 代替图片设置为View的背景 4. ...
- C++ 系列:静态库与动态库
转载自http://www.cnblogs.com/skynet/p/3372855.html 这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择 ...
- Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式
前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...
- C++静态库与动态库
C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...
- Linux下Gcc生成和使用静态库和动态库详解(转)
一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...
- VS中Debug和Realease、及静态库和动态库的区别整理(转)
原文出自:http://www.cnblogs.com/chensu/p/5632486.html 一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不 ...
- 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)
手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...
随机推荐
- 快速掌握C#7
1. out 变量(out variables) 以前我们使用out变量必须在使用前进行声明,C# 7.0 给我们提供了一种更简洁的语法 “使用时进行内联声明” .如下所示: var input = ...
- 微信小程序左右滑动切换页面示例代码--转载
微信小程序——左右滑动切换页面事件 微信小程序的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend. 这三个事件最重要的属性是pageX和pageY,表示X, ...
- linux ssh 经常断开 的解决方法
1.现象 在linux ,用ssh进行远程连接时,经常会发生长时间后断线,或者是无响应,就像卡住的感觉(键盘输入不进去). 2.解决方法 在ssh客户端的linux设置 # sudo vim /etc ...
- Deutsch lernen (11)
1. anwesend a. 出席的,在场的 ~ abwesend Es waren gegen 50 Leute anwesend. 2. gespannt a. (心情)急切的,急于想知道的:紧张 ...
- CDC之Synchronizers
1 Scenarios Two scenarios for passing signals across CDC boundaries: 1) sometimes it's not necessary ...
- OpenCV:OpenCV图像旋转的代码
OpenCV图像旋转的代码 cv::transpose( bfM, bfM ) 前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了.直接使用两个指针对拷贝才是王道.不知道和OpenCV比 ...
- 三维重建:多点透视cvSolvePNP的替代函数(Code)
在调试JNI程序时,所有的Shell都已经加载完成,而唯一真正核心的cv::SolvePnP却不能在JNI里面获得通行证,经过反复测试都不能运行,因此只能忍痛舍弃,自行编写一个具有相 ...
- 新浪某个tab 页模仿
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Laravel Cache 缓存使用
导入:use Cache; Cache::put('key', 'value', $minutes); 添加一个缓存 Cache 门面的 get 方法用于从缓存中获取缓存项,如果缓存项不存在,返回 n ...
- tomcat实现连接数据库
192.168.30.23mkdir /web/webapptar xf SLSaleSystem.tar.gz -C /web/webappls /web/wenbappvim /usr/loca ...