为什么要有动态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
分享到:
相关推荐
用jsp、action、struts-config.xml配置文件,举例说明了DynaActionForm 在struts1 中的作用。
<controller processorClass="org.apache.struts.action.DynaActionForm"> <!-- Controller配置 --> <!-- 全局转发配置 --> <!-- 国际化资源配置 --> </struts-config> ``` - **web.xml**:作为...
在struts.xml中定义一个DynaActionForm,然后在Action中通过DynaActionForm获取属性。 9. **文件上传**:Struts2支持文件上传功能。在JSP中使用`enctype="multipart/form-data"`来指定文件上传的表单类型。在...
Struts framework中,ActionForm对象的封装及应用,通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm ,动态的ActionForm允许你通过Struts的配置文件完成ActionForm的全部配置;...
例如,你可以使用`org.apache.struts.action.DynaActionForm`动态表单类来注入数据源。 ```xml ``` 4. **在Action类中获取数据源**:在Action类中,通过`ActionServlet`的`getServletContext().lookup()`方法...
若需要使用动态表单,则可以设置为`org.apache.struts.action.DynaActionForm`。 - **`<form-property>`**: - **`name`属性**:表示表单对象中属性的名称。 - **`type`属性**:表示表单对象中属性的数据类型。 ...
同时,对于DynaActionForm类型,由于其动态属性的特性,某些标签的属性配置会有所不同,如不能在JSP中直接指定`name`和`type`属性。总的来说,熟练掌握Struts配置文件和相关标签,能够帮助开发者更高效地构建功能...
为了解决这个问题,Struts引入了DynaActionForm,这是一种动态ActionForm,它允许开发者不再需要手动创建ActionForm类,而是通过配置文件(struts-config.xml)来定义表单字段及其属性。 DynaActionForm是基于org....
- `struts-config.xml`是Struts应用的主要配置文件,遵循`struts-config_1_2.dtd`。 - 文件结构包括:`<data-sources>`, `<form-beans>`, `<global-exceptions>`, `<global-forwards>`, `<action-mappings>`, `...
- **灵活的配置**:通过配置文件(如`struts-config.xml`)来定义应用的行为,方便调整和维护。 - **扩展性和插件支持**:支持自定义插件,可以轻松扩展框架的功能。 - **社区支持**:拥有活跃的开发者社区,提供了...
<data-source key="exampleDS" type="org.apache.struts.action.DynaActionForm"> <!-- DataSource配置属性 --> ``` **3. ActionForward配置** `ActionForward`定义了请求成功或失败后的页面跳转。它可以是...
本文对 Struts 1.x 的核心概念和技术进行了详细介绍,包括配置文件解析、ActionForm 和 DynaActionForm 的使用、数据转换以及表单验证等方面。希望这些内容能帮助读者更好地理解和掌握 Struts 1.x 框架的使用方法。
05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,但是它不能实现验证功能,演示人机交互实例。 06 Struts_06Filter : 中文编码的统一处理,通过Struct的请求...
- **动态ActionForm**:`org.apache.struts.action.DynaActionForm`,支持动态属性的增删改查。 #### 五、Struts1 连接池与多模块操作 **5.1 数据库连接池** Struts1可以集成C3P0等连接池,但文档中提到的问题...
1. **配置struts-config.xml**:这是Struts框架的核心配置文件,我们需要在这里定义Action Mapping来指定特定的Action类处理上传请求。例如,添加如下配置: ```xml ``` 其中,`/upload`是请求路径,`...
在Struts配置文件(struts-config.xml)中,我们需要声明ActionForm与Action的关联,指定哪个Action使用哪个Form Bean: ```xml ``` 当用户访问/login路径并提交表单时,Struts会自动实例化UserForm...
1. 配置Struts-config.xml文件,定义DynaActionForm和相关的ActionMapping。 2. 创建DynaActionForm类,定义动态属性。 3. 编写Action类,处理动态表单的提交。 4. 设计JSP页面,利用`<html:form>`和`<html:dynamic>...
本篇文章将详细解读“struts1+spring+hibernate整合示例”的相关内容,包括配置文件的分析、各组件的作用及它们之间的交互机制等。 #### 一、整体架构概述 在整合Struts1、Spring与Hibernate的过程中,每个框架都...
通过在struts-config.xml中配置DynaActionForm,并在ActionForm中实例化DynaActionForm,我们可以轻松地处理不同场景下的表单数据。 **使用实体对象作为Form属性** 在开发中,经常需要将数据库中的实体对象映射到...
- **struts-bean.jar**:提供数据绑定和标签库支持,包括BeanUtils和DynaActionForm。 - **struts-html.jar**:包含HTML表单相关的标签库,如表单元素、链接、图像等。 - **struts-logic.jar**:提供逻辑控制标签,...