Struts DynaActionForm配置

为什么要有动态ActionForm呢?若在一个大型项目中,我们的ActionForm可能会很多,而使用动态ActionForm的话,我们就不需要去写那么多类文件了,我们可以直接在配置文件中配置所需要的ActionForm。
下面我们来看看如何配置动态ActionForm。首先我们创建一个JSP页面用于提交数据和显示数据。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>动态ActionForm测试</title>
</head>
<body>
<form action="dynaactionform.do" method="post">
用户名:<input type="text" name="userName"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>

上面的代码中我们创建一个form表单,表单中有userName和password两项提交给dynaactionform.do进行处理。
接着创建我们的Action,其代码如下:

package cn.ineeke.dynamicactionform.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
public class DynaFormAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DynaActionForm dynaForm = (DynaActionForm)form;
System.out.println(dynaForm.get("userName"));
System.out.println(dynaForm.get("password"));
return mapping.findForward("success");
}
}

上面的DynaFormAction同样也是继承自Action这个类,而在execute方法中我们将前端控制器传给我们的form强制转换成DynaActionForm(动态ActionForm)类型,并调用其get方法输出各属性值,之后进行跳转。
接下来配置struts-config.xml文件,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="userName" type="java.lang.String"></form-property>
<form-property name="password" type="java.lang.String"></form-property>
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/dynaactionform"
type="cn.ineeke.dynamicactionform.action.DynaFormAction"
name="dynaForm"
scope="request"
>
<forward name="success" path="/dynaform.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="cn.ineeke.struts.ApplicationResources" />
</struts-config>

在struts-config.xml中我们配置了一个ActionForm和一个Action,这个ActionForm有两个属性,分别是 userName和password以及其数据类型。其中org.apache.struts.action.DynaActionForm这个类是 Struts所为我们提供的,我们就是使用它实现动态ActionForm的。
动态ActionForm动在何处呢?就动在form-bean的配置中。我们可以使用<form-property>动态的配置ActionForm的各个属性。

 

 

--------------------------------------------------------------------------------------------------
我们的淘客网开通啦,欢迎大家去逛逛 ~\( ≧▽≦ )/~ 啦啦啦 ~~~
淘宝购物资讯网: http://taoke178.jimdo.com

淘乐园: http://taoleyuan.jimdo.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值