第一步:
对象的可视范围: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,那其影响就更是不难理解了,这时不但是你自己会影响你自己,使用应用的其他用户的操作也会影响到你。
<转自:http://www.blogjava.net/zzheng/archive/2008/09/05/227207.html>
---------------------------------------------------------------------------------------------------------------------------------
说明:在Struts中对于每一个请求,控制器都会先调用ActionForm的reset( )方法,然后把用户输入的表单数
据组装到ActionForm中。也就是说,我们在显示界面中用到的表单的值(默认值),使用这里得到。
问题提出:很多人喜欢将验证使用Validator验证框架,它使用起来很方便。但在我们的实际工作当中,我
们需要将(比如一篇文章)的添加,编辑放在一个显示页面去操作,这样我们在编辑的时候就必须在现实
的页面查询到我们需要编辑的文章信息,如 标题,时间,内容,文章的录入人等这些信息,这样在显示
页面我们无法避免的在HTML代码中夹杂我们的查询(无论采用何种方式),然后将查询的内容对应到具
体使用的表单的value中进行编辑。这样,功能完成了,但页面看起来有些乱。
解决办法:利用ActionForm的reset()方法,利用它对数据初始化的能力。我们利用文章的ID号分别判断到
文章添加和编辑状态,然后再reset()方法中,可以结合数据库的查询将需要编辑的字段(表单值)初始化
在这里,(当然了添加就直接初始化了),这样我们的显示页面就只有HTML和Struts的标签了,显示页面
变得轻巧了许多。
优点:显示页面变得简洁轻巧,页面修改变得简单。
缺点:ActionForm reset()内容增加,变得庞大。需要很好的规划组织(当然了这种代价也是值得的)。
这种使用的方式可能有的朋友并不赞同,欢迎大家来讨论。因为没有什么是一成不变的,灵活的应用是我
们生存之道。
<转自:http://www.blogjava.net/kela/archive/2005/11/11/19278.html>
分享到:
相关推荐
在本实验中,我们将通过构建一个简单的Web应用程序——添加学生信息——来深入理解并掌握Struts 2框架的应用。此实验旨在帮助学习者熟悉Struts 2的各种核心组件和技术,包括但不限于标签库、配置文件设置以及与...
具体做法是在`reset()`方法中调用`initialize()`方法。 ```java public class CustomDynaActionForm extends DynaActionForm { @Override public void reset(ActionMapping mapping, HttpServletRequest request)...
在登录示例中,有两个JSP页面——logon.jsp(登录界面)和main.jsp(用户成功登录后的欢迎页面)。 5. **MessageResources**: 用于国际化的文本资源,通常存储在ApplicationResource.properties文件中。 现在,...
3. **配置Web.xml:** 在项目的`web.xml`文件中配置STRUTS的核心组件——`ActionServlet`。具体的配置代码如下所示: ```xml <servlet-name>action <servlet-class>org.apache.struts.action.ActionServlet ...
- **功能**:用于调用Action类中的方法。 - **示例**: ```xml ``` ##### 3. `<s:actionerror/>` 和 `<s:actionmessage/>` - **功能**:分别用于显示Action中的错误信息和消息提示。 - **示例**: ```xml ...
### 精通Struts——Java流行服务器、框架及工具整合应用 #### 3.1 标签库的组成 Struts 框架的核心优势之一在于它的标签库,这是一套专门设计用于简化Web开发过程的工具集合。通过使用这些标签,开发者能够有效地...
相较于Struts1,Struts2提供了更为强大的功能和更加灵活的设计模式,支持多种表现层技术,并且集成了强大的表达式语言——OGNL(Object-Graph Navigation Language),使得开发者能够更高效地进行Web应用开发。...
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。书中...
在Java的三大平台中——Java SE(标准版)、Java EE(企业版)以及Java ME(微小版),Java Web开发主要关注的是Java EE。Java EE为Web应用提供了丰富的服务和API,包括但不限于Web容器、Servlet、JSP、EJB(企业级...
以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...
5. **掌握Struts2拦截器的使用和配置**:深入学习Struts2拦截器的工作原理及配置方法,增强应用程序的灵活性和可扩展性。 6. **熟悉基于Struts2框架的文件上传功能**(扩展实验):了解如何使用Struts2框架实现文件...
在现代Web开发中,文件上传是常见的需求之一。本文将详细介绍如何利用SSH2(Struts2 + Spring + Hibernate)框架结合ExtJS前端库实现文件上传功能。具体包括前端界面设计、JavaScript交互逻辑以及后端处理流程。 ##...