ActionForm 的要求
创建一个ActionForm 并不困难,但是你的类必须符合一些要求:
1、ActionForm 必须扩展自org.apache.struts.action.ActionForm。基类
ActionForm 是不能实例化的。
2、ActionForm 必须为每个应该从请求中收集的HTML输入控件定义一个公共属性。
ActionForm还可能要符合一些可选的要求:
3、 如果你要求ActionForm 在传递属性到Action之前校验它们,你就必须实现
validate方法;
4、 如果想在组装前初始化属性,必须实现 reset , 它在ActionForm 组装前被调用;
reset()方法如何使用呢?如下:
第一步:
对象的可视范围:request、session、application、page。
Request:在一个请求周期内有效。就是从你点击页面上的一个按钮开始到服务器返回响应页面为止(包括响应页面)。
Session:在一个用户与服务器建立连接的整个过程中有效。
Application:在整个web应用程序内有效。
Page:仅在一个jsp页面内有效。
第二步:
ActionForm在你确定的有效期(可视范围)内是唯一的。
第三步:
在每次为ActionForm赋值前调用它的reset方法。作用是使ActionForm中的值恢复初始状态。在应用中我们可以通过在reset中为变量赋初值的方式,使得页面上的某个对象有显示值。
第四步:
可视范围与赋值前的初始化结合。
由 于第二步所述特性,如果可视范围是request,则reset方法并不是很重要,因为你每次调用时都会产生一个新的ActionForm实例,所以你所 操作的ActionForm不会与别人分享同时也就不会受别人的影响;如果可视范围是session,由于在session范围内此ActionForm 是唯一的,所以你在session范围内需要用到此ActionForm的地方调用的都是同一个ActionForm,要是你没有在reset中对变量赋 初值那么前一次调用ActionForm是为它赋的值将在此次调用时有效,这到也没什么。但是,如果恰巧再次调用时你仅仅需要为ActionForm中的 一部分变量赋值,那么其余的变量将保持上一次得到的值,这样你就得到了一个“新旧混合体”,我想这多半不是你所期望的;如果可视范围是 application,那其影响就更是不难理解了,这时不但是你自己会影响你自己,使用应用的其他用户的操作也会影响到你。
第五步:
知 道了reset方法的作用和ActionForm在scope内唯一的特性后就为我们灵活处理ActionForm的行为提供了基础。比如说你现在需要跨过多个页面收集数据信息,这时你就可以把scope设置为session,并且不实现reset方法――这样在每个页面put数据时都不会将之前收集的数据清空,最后在你收集完数据后在Action中调用ActionForm中你自定义的初始化方法,如:resetField。
在具体的我也想不出了,还是要大家在应用时多多体会这些特性,这样才能把架构的威力发挥到最大。
分享到:
相关推荐
### Struts HTML 标签详解 #### 一、概述 Struts框架是Java Web开发中一个重要的MVC(Model-View-Controller)架构框架。它提供了丰富的标签库来帮助开发者快速构建用户界面,提高开发效率。本文将详细介绍Struts ...
### Struts Framework 知识点详解 #### 一、MVC概述 ##### 1.MVC概念 MVC(Model-View-Controller)是一种软件架构模式,它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。...
### Struts1 用户登录实现详解 #### 一、Struts1 框架简介 Struts1 是一个基于 Java 的开源 MVC(Model-View-Controller)框架,它为 Web 应用提供了一种结构化的开发方式。Struts1 的设计模式使得开发者能够更加...
### Struts 学习一天篇知识点详解 #### 一、Struts 概述与 MVC 架构 **Struts** 是一款开源的 Java Web 应用框架,属于 Model-View-Controller (MVC) 设计模式的一种实现。它极大地简化了 Java Web 开发流程,并且...
#### 二、Struts 配置文件详解 **1. `struts-config.xml` 文件解析** `struts-config.xml` 是 Struts 1.x 中的核心配置文件,用于定义应用程序的行为和结构。主要包括以下几个部分: - **Form Beans 定义**:用于...
2. 类型安全:Struts标签能够确保与ActionForm对象的属性匹配,避免了类型转换错误。 3. 国际化:标签支持国际化,可以方便地切换语言环境。 六、实例应用 例如,一个简单的登录表单可以使用以下Struts HTML标签...
`reset`方法是一个典型的生命周期方法,用于重置表单字段的值,通常在ActionForm的生命周期中会被调用。 接下来,`input_struts.jsp`页面是使用Struts1标签进行输入表单渲染的部分。在JSP中,Struts1提供了如`<html...
#### 三、Struts1运行流程详解 - **客户端发起请求**:当客户端向服务器发送一个以 `.do` 结尾的请求时,服务器会查找 `struts-config.xml` 文件来确定如何处理这个请求。 - **匹配Action路径**:如果找到匹配的...
### Struts 进阶知识点详解 #### 一、Struts框架简介与动态ActionForm概念 Struts是一个基于Java EE的MVC(Model-View-Controller)框架,它为Web应用程序提供了一个结构化的解决方案。在Struts框架中,ActionForm...
2. **与框架配置交互**:Struts标签能够方便地与`struts-config.xml`文件以及`ActionForm`对象等Struts框架特有的组件进行交互,进一步提高了框架的灵活性和扩展性。 #### 三、Struts1 标签库分类 Struts1 标签库...
#### 二、Struts架构详解 ##### 2.1 Struts压缩包内容 Struts的压缩包通常包含了必要的文件和目录结构,具体如下: - **lib目录**: 包含了运行Struts应用程序所需的所有库文件,例如`jdbc2_0-stdext.jar`用于提供...
### Struts面试宝典知识点详解 #### 一、Struts框架的MVC模式解析 - **M (Model 模型)**:表示系统的业务逻辑部分,通常由JavaBeans或POJOs来实现,负责处理应用程序的核心功能,如数据库操作、业务处理逻辑等。 -...
### Struts框架详解及其面试知识点梳理 #### 一、Struts框架概述 **Struts** 是一款基于 **MVC(Model-View-Controller)** 设计模式的开源Java Web应用框架,主要用于构建可扩展的企业级Web应用。它通过清晰地分离...
### Struts核心类用法详解 #### 一、概述 在Java Web开发中,Struts框架作为MVC架构模式的一种实现,提供了丰富的功能与便捷的API来帮助开发者构建灵活、可扩展的应用系统。Struts的核心类包括`Action`、`Action...
通常,ActionForm继承自`org.apache.struts.action.ActionForm`类,并实现`reset()`和`validate()`方法。这些方法分别用于重置表单数据和验证表单数据的有效性。 4. **在Struts中,Action类的常用方法有哪些?** ...
在Struts框架中,实现文件上传主要涉及以下几个关键组件:ActionForm、Action、配置文件以及前端表单设计。 #### 三、重要知识点解析 ##### 1. MoreFileUploadForm 类详解 - **类定义**: - `MoreFileUploadForm...