返回首页

Struts实现动态ActionForm实例及代码

时间:2012-12-13 13:54来源:知行网www.zhixing123.cn 编辑:麦田守望者

DynaActionForm的产生

  很久没有更新Java相关知识,今天不得不写点了。写写关于Struts的动态ActionForm吧。我们使用ActionForm已经很久了,我们继承于这个类就是为了搜集到Form表单中的数据,然后使用Action来进行处理。那么DynaActionForm又有什么用呢?

   字面意思为动态ActionForm,而且如果我们在真正使用Struts框架做一个完整的项目时,不得不考虑的事情是:


如果我把页面的Form表单的某些属性名修改之后,是否还要重新编写一个ActionForm来搜集数据?


一个完整的网站,如此多的不同的表单需要向服务器提交数据,那么我们需要建立那么多对应的ActionForm搜集表单数据吗?


 解决ActioForm膨胀现象

  动态ActionForm由此而生,不需要单独写一个ActionForm类搜集数据,只要在配置文件加以配置就可以实现数据搜集。而且如果表单属性有所修改,我们只需要修改配置文件就可以应付相应的变化,为日后网站维护提供很多的方便。

演示并实现动态ActionForm

  一个index.jsp页用来提交数据,success.jsp页面显示结果,testAction继承Action处理数据。想要实现动态ActionForm其实很简单,只需要修改struts-config.xml就可达到效果。如下配置:

<form-beans>
<form-bean name="dyloginForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String"></form-property>
<form-property name="age" type="java.lang.Integer"></form-property>
</form-bean>
</form-beans>
<action-mappings>
<action path="/dyloginActionForm"
type="cn.zhixing123.www.testAction"
name="dyloginForm"
scope="request"
>
<forward name="success" path="/success.jsp"/>
</action>
</action-mappings>

 只需要在form-bean标签加入form-property标签,并指定相应表单名称和数据类型就可以。

testAction继承于Action关键代码为:

DynaActionForm dyf = (DynaActionForm )form;
System.out.println("username="+dyf.get("username"));
System.out.println("age="+dyf.get("age"));
return mapping.findForward("success");

success.jsp页面可以使用以下代码获得输入:

 用户名:${dyloginForm.map.username} 年龄:${dyloginForm.map.age}

Struts将对象数据存于map。可以使用“.”导航获取数据。

执行结果如图:

Struts实现动态ActionForm实例及代码1

输入表单页面

Struts实现动态ActionForm实例及代码2

success页面输出struts处理的数据

Struts实现动态ActionForm实例及代码3

Eclipse控制台的输出

------分隔线----------------------------
标签(Tag):Java JAVA龙8国际平台入口 JAVA基础教程 Java源代码 Java技巧
------分隔线----------------------------
推荐内容
  • 如何安装oracle 10g数据库 oracle 10g安装图解

    特意为大家制作了一份 oracle 10g安装图解 ,这样大家在安装的时候就不会出错了,至于...

  • Eclipse 如何安装Spring IDE支持

    ECLIPSE ARCHIVE离线安装包 SIZE 4.6 springsource-tool-suite-3.8.1.RELEASE-e4.6-up...

  • Eclipse 初始设置图解教程

    一、自动补全 .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 二、字体设置 ...

  • idear如何配置JRebel实现热部署

    习惯写PHP之后,发现写JavaEE最蛋疼的是每次修改完代码,需要重启Tomcat服务,当项目...

  • java常用设计模式原型模式及深浅拷贝

    原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的...

  • java中单例模式的4种实现方式

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式...

  • 猜你感兴趣
  • 教育技术学动态
  • 教育技术学论文
  • 理论研究
  • 应用研究
  • 资源收藏
  • 百家观点
  • 英文文献
  • 中国电化教育
  • 电化教育研究
  • 中国远程教育
  • 开放教育研究
  • 现代教育技术
  • 远程教育杂志
  • 现代远距离教育
  • 中国教育信息化
  • 中国信息技术教育
  • 中小学信息技术
  • Flash龙8国际平台入口
  • Photoshop龙8国际平台入口
  • 3DMAX龙8国际平台入口
  • AutoCAD龙8国际平台入口
  • CorelDRAW龙8国际平台入口
  • Matlab龙8国际平台入口
  • 其他龙8国际平台入口
  • .Net龙8国际平台入口
  • Asp龙8国际平台入口
  • Php龙8国际平台入口
  • Jsp龙8国际平台入口
  • Ajax龙8国际平台入口
  • Android教程
  • 其他龙8国际平台入口
  • Word教程
  • Excel教程
  • PowerPoint教程
  • Ubuntu教程
  • 其他教程
  • 课件下载
  • 软件下载
  • 视频教程下载
  • 其他下载
  • 教案大全
  • 试题大全
  • 课件大全
  • 其他大全
  • 人像摄影
  • 风光摄影