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为我们做了很 ...
随机推荐
- UITextField 点击事件 --- 不会触发键盘弹出,触发其他事件的实现。
今天在做项目的过程中,其中有三个控件: UITextField, UITextView , UILabel, 后来发现个问题:如果什么数据都不回填给textField.text 和 textView. ...
- C - Alice, Bob and Chocolate(贪心)
Problem description Alice and Bob like games. And now they are ready to start a new game. They have ...
- centOS 7.4 安装配置jdk1.8
按以下步骤安装 JDK. 1.新建一个目录: mkdir /usr/java 2.通过XShell 上传本地安装包或者通过命令下载在线安装包 wget http://mirrors.linuxeye. ...
- 5.13Mysql数据库Database
数据库的基本概念 1.什么是数据库: 用于存储和管理数据的仓库. 2.数据库的特点: 1.持久化存储数据的.其实数据库就是一个文件系统. 2.方便存储和管理数据 3.使用了统一的方式操作数据库---s ...
- CSS画各种二维图形
1.效果 2.源码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...
- C#中SetWindowPos函数详解
[DllImport("user32.dll")] private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWnd ...
- [Intermediate Algorithm] - Everything Be True
题目 所有的东西都是真的! 完善编辑器中的every函数,如果集合(collection)中的所有对象都存在对应的属性(pre),并且属性(pre)对应的值为真.函数返回ture.反之,返回false ...
- js 获取属性名称,再根据这个属性名获取值
if (result.success) { var obj = JSON.parse(result.data); var sltObj = document.getElementById(" ...
- webpack学习(六)—webpack+react+es6(第3篇)
接上篇 : webpack学习(六)—webpack+react+es6(第2篇) 上篇其实是有问题的,问题在取服务器数据这块.this.props 表示那些一旦定义,就不再改变的特性,而 this. ...
- tomcat配置SSH加密
[root@tomcat2 ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat7/keystor ...