作者:Flyingis<o:p></o:p>
ActionForm 是Struts设计中比较有争议的一个概念,在某些情况下也许不会使用到ActionForm,具体可以参照《Struts Action的多种角色》一文。尽管如此,ActionForm在许多应用的开发中都实现了重要的功能,它是Struts框架提供的DTO,用于在视图层和控制层之间传递HTML表单数据,控制层可以从ActionForm Bean中读取用户输入的表单数据,也可以把来自模型层的数据存放到ActionForm Bean中,返回给视图,即使用它的主要目的是字段采集、类型转换器、以及传输对象等。对于ActionForm Bean在MVC中所处层次结构的理解,可以参考《剖析MVC中的各种Object》。<o:p></o:p>
ActionForm 的基本功能<o:p></o:p>
1. 字段采集<o:p></o:p>
在Web应用程序开发过程中,数据的采集是最基本的一个环节,而html定义的数据输入控件和http定义的数据传输协议非常简单,因此在Struts中设计了ActionForm来弥补这种不足。Struts对http参数处理的方法是将输入参数传递到JavaBean属性来进行处理,当ActionForm的属性与某个请求参数匹配,框架自动以参数的值设置属性。<o:p></o:p>
2. 数据校验器<o:p></o:p>
Html 没有在数据提交之前对数据进行校验的能力,使用javascript可以做到这些,优点在于可以减轻服务器负担,但javascript经常会被浏览器禁止,因此,在Struts中ActionForm实现了部分数据校验的功能,当输入数据不符合要求时,页面将被返回到数据数据页面,要求用户重新输入。一般情况下,ActionForm属性定义为String类型,以便对各种输入进行捕获。另外,还可以用ActionForm和Action对输入数据进行双重校验,ActionForm校验数据类型是否正确,Action校验该数据是否满足业务层的其他要求。<o:p></o:p>
3. 类型转换<o:p></o:p>
HTML 表单中的数据类型一般是String或boolean类型,通过在ActionForm Bean中实现Helper方法,可以实现属性类型的转换。<o:p></o:p>
4. 传输对象<o:p></o:p>
ActionForm 可以作为其他Bean的数据载体,它装载的数据通常对应着持久层中的不止一个实体。<o:p></o:p>
分享到:
相关推荐
使用Struts 1.3.8时,开发者需要配置web.xml和struts-config.xml,定义ActionServlet、Action、ActionForm等元素。此外,还需要编写ActionForm类,实现业务逻辑的Action类,以及使用JSP和Struts标签创建用户界面。 ...
在实际项目中,我们通常会创建一个Spring配置文件,如`spring-struts.xml`,在这个文件中声明需要管理的Action类,以及相关的拦截器和事务管理策略。同时,Struts的配置文件(struts-config.xml或struts2的struts....
3. **值栈(Value Stack)**:值栈是 Struts 2 提供的一种数据管理机制,它将 Action 对象、ActionForm 对象和其他模型对象存储在一个栈中,方便在 JSP 页面中通过 OGNL 表达式访问这些对象。 4. **OGNL(Object-...
Spring提供了一个名为`SpringModuleServlet`的类,它是`ActionServlet`的子类,负责初始化Spring的ApplicationContext,并将Struts的ActionForm对象与Spring的Bean进行关联。 2. **依赖注入(DI)** `org.spring...
Struts 1.x是Struts的第一个主要版本,它的核心组件包括ActionServlet、ActionForm、ActionMapping和Tiles等。以下是对这两个版本及其相关知识点的详细解释: 1. **ActionServlet**:这是Struts的核心控制器,它是...
6. **配置文件**:如 `struts-config.xml`,它是 Struts 的核心配置文件,定义了 Action、ActionForm、ActionMapping 和其他组件的配置信息。 7. **国际化与本地化支持**:Struts 支持多语言应用,通过资源文件提供...
Struts 是一个基于 Model-View-Controller (MVC) 设计模式的 Java Web 开发框架。在 Struts 应用程序中,`struts-config.xml` 文件是核心配置文件,它定义了应用的行为、控制器(Actions)、数据源(Form Beans)...
Struts 2是Java开发Web应用的一个流行框架,它的核心基于Model-View-Controller(MVC)设计模式。本文将深入探讨Struts 2.0的相关知识点,包括DTD(Document Type Definition)的作用、Struts配置文件`struts.xml`的...
4. **配置文件**:基于XML的配置文件(struts-config.xml和web.xml),用于定义Action、ActionForm、Forward等。 5. **ActionForward**:控制请求转发到不同的Action或JSP页面。 6. **ActionForm**:封装HTTP请求...
Struts-menu是一个基于Java EE平台的开源框架,用于构建企业级Web应用程序。...同时,了解并掌握Struts的其他核心概念,如ActionForm、Interceptor、ActionMapping等,将有助于全面掌握Struts框架。
Struts 1.3.8 是 Apache Software Foundation 开发的 Web 应用程序框架 Struts 1.x 系列的最终版本。这个框架主要用于构建基于 Model-View-Controller(MVC)架构的 Java web 应用。Struts 1 在其生命周期中经历了多...
3. **ActionForm**:Struts 提供了ActionForm类来封装用户从表单提交的数据,这样业务逻辑可以处理这些数据而无需直接访问请求对象。 4. **Model**:模型层负责业务逻辑,可以是简单的JavaBean或者复杂的EJB组件。 ...
9. **配置文件**:如struts-config.xml,是Struts的核心配置文件,定义了Action、ActionMapping、ActionForm和Interceptor等组件,以及它们之间的关系。 10. **国际化和本地化支持**:Struts提供资源包(....
`jakarta-struts-1.2.4-src.zip` 包含了Struts 1.2.4的完整源代码,开发者可以借此深入了解框架的内部实现,学习其设计思路。主要的源代码目录结构如下: - `org.apache.struts.action`:包含Action和ActionForm...
- `struts-core.jar`:这是Struts的核心库,包含ActionServlet、ActionForm、Action、Dispatcher等关键类,它们是Struts框架的基础。 - `struts-tiles.jar`:Tiles扩展了Struts,提供了一种方式来组织和重用页面...
3. 编写Action、ActionForm和JSP页面,遵循Struts的MVC模式。 4. 配置服务器,如Tomcat,将应用部署上去。 **总结:** Struts 1.2.9是Java Web开发的重要里程碑,引入了许多核心的MVC概念和实践,对Web应用的结构化...
`form-beans`元素用于配置Struts的ActionForm对象,这些对象在MVC模式中负责收集和验证用户输入。每个`form-bean`子元素代表一个ActionForm,包括其名称(`name`属性)和完整的类名(`type`属性)。`classname`属性...
6. Struts配置文件(struts-config.xml):定义了应用程序的结构,包括Action、ActionForm、ActionMapping等元素的配置。 7. Tiles框架集成:Struts 1.2.x版本中包含了Tiles框架,它提供了一种组织和重用页面布局的...
- 配置struts-config.xml:定义ActionMapping,关联ActionForm和Action,设置请求转发路径。 - 设计JSP页面:展示视图,使用Struts标签库(struts-bean、struts-html、struts-logic等)来绑定数据。 5. **运行...
通过阅读源码,我们可以深入理解Struts的内部工作原理,包括ActionServlet、RequestProcessor、ActionForm、ActionMapping等关键类的实现,以及各种拦截器(Interceptor)的工作方式。 学习和使用“struts-1.2.9-...