返回首页
当前位置: 主页 > 网络编程 > Jsp实例教程 >

Struts实现动态ActionForm实例及代码

时间:2012-12-13 13:54来源:2018年最新注册送彩金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控制台的输出

顶一下
(1)
100%
踩一下
(0)
0%
标签(Tag):Java JAVA实例教程 JAVA基础教程 Java源代码 Java技巧
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
博聚网