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为我们做了很 ...
随机推荐
- 前端面试:问到GET和POST两种区别
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. "标准答案"(本标准答案参考自w3schools): GET在浏览器回退时是无害的,而P ...
- Java.HttpClient绕过Https证书解决方案一
方案1 import javax.net.ssl.*; import java.io.*; import java.net.URL; import java.security.KeyManagemen ...
- 数据连接类 这里采用mysql
数据库通用操作类,自己参照几个通用类改写的,用起来还是蛮不错.... 这里用的mysql 要是其他数据库自行更改下就好 public class MySqlHelper { public stati ...
- NPOI导出Excel自动计算公式问题
以前用过sheet.ForceFormulaRecalculation = true;当时能够自动计算出来. 今天把模板改了一下(没动公式,但是模板是老板改的,我也不知道他操作了什么),结果就不能自动 ...
- Leetcode0037--Sudoku Solver 数独游戏
[转载请注明]http://www.cnblogs.com/igoslly/p/8719622.html 来看一下题目: Write a program to solve a Sudoku puzzl ...
- 【SQL】INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND
INTERVAL YEAR TO MONTH: 作为年和月的时间间隔存储 INTERVAL DAY TO SECOND: 作为天.小时.分和秒的时间间隔存储(DAY,HOUR,MINUTE,SECON ...
- 使用pelican创建静态博客
创建工作目录 首先使用pip安装pelican和markdown pip install pelican markdown 然后创建目录 mkdir my_blog 接着进入目录cd my_blog, ...
- OpenCV的AdaptiveThreshold函数
摘自于OpenCV Doc2.410,opencv2refman文档. 1.函数原型 adaptiveThreshold //Applies an adaptive threshold to an a ...
- jquery-pjax使用说明
pjax = pushState + ajax .--. / \ ## a a ( '._) |'-- | _.\___/_ ___pjax___ ."\> \Y/|<'. '. ...
- nginx设置跳转https
在监听80端口的内部,添加一句代码:rewrite ^(.*)$ https://$host$1 permanent;