在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的更多相关文章

  1. Struts框架——(三)动态ActionForm

    一.DynaActionForm的引入意义 使用ActionForm把表单数据单独封装起来,而且提供了自动的数据验证,简化了代码的编写,给我们带来了极大的方便. 但是,ActionForm也存在一些明 ...

  2. DynaActionForm(动态ActionForm)的使用

    在struts中利用DynaActionForm(动态ActionForm)可以节省代码的编写. 1.在struts-config.xml中配置DynaActionForm:加入这个Form中有三个属 ...

  3. Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现)

    Android GradientDrawable使用优势: 1. 快速实现一些基本图形(线,矩形,圆,椭圆,圆环) 2. 快速实现一些圆角,渐变,阴影等效果 3. 代替图片设置为View的背景 4. ...

  4. C++ 系列:静态库与动态库

    转载自http://www.cnblogs.com/skynet/p/3372855.html 这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择 ...

  5. Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式

    前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...

  6. C++静态库与动态库

    C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...

  7. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  8. VS中Debug和Realease、及静态库和动态库的区别整理(转)

    原文出自:http://www.cnblogs.com/chensu/p/5632486.html 一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不 ...

  9. 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)

    手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...

随机推荐

  1. mysql如何查询最新插入的数据

    在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中常见的用法.但是在具体生成id的时候,我们的操作顺序一般是:先在 ...

  2. Servlet初始化与异步支持

    Shared libraries(共享库) / runtimes pluggability(运行时插件能力) 1.Servlet容器启动会扫描,当前应用里面每一个jar包的 ServletContai ...

  3. CAS配置记录

    CAS配置(1)之证书配置 CAS配置(2)之主配置 CAS配置(3)之restful-api接入接口

  4. golang单点推送

    package main import ( "encoding/json" "flag" "fmt" "log" &qu ...

  5. ROS-节点-Topic

    前言:本部分主要介绍ros一些基础功能的使用,包括创建和编译工作空间.功能包.节点以及话题. 第一种方式:使用roboware studio软件操作 1.1 创建工作空间 回车然后点击保存. 1.2 ...

  6. POJ 3253 STL优先队列

    题目大意:FJ需要修补牧场的围栏,他需要 N 块长度为 Li 的木头(N planks of woods).开始时,FJ只有一块无限长的木板,因此他需要把无限长的木板锯成 N 块长度 为 Li 的木板 ...

  7. 复习HTML+CSS(9)

    n  CSS简介 CSS:Cascading Style Sheets 层叠样式表 CSS的主要目的:是给HTML标记添加各种各样的表现(格式.样式).比如:文字样式.背景.文本样式.链接样式. 提示 ...

  8. 收集五款常用的HTML编辑软件

    HTML(HyperText Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言.HTML文本是由HTML命令组成的描述 ...

  9. java与安卓中的回调callback学习笔记

    1.回调的简单设计如下: package com.listercai.top; public class A { private CallBack callBack; private AnotherC ...

  10. 错误 RC1015: 无法打开包含文件 'XTToolkitPro.rc'

    XtremeToolkitPro作为VC++/MFC平台下目前最流行的GUI界面库之一,安装和使用都很方便.不过,在实际使用中还是碰到许多问题.如果在编译工程时只显示一个错误:RC1015: 无法打开 ...