`
flashdream8
  • 浏览: 675466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts之form中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,那其影响就更是不难理解了,这时不但是你自己会影响你自己,使用应用的其他用户的操作也会影响到你。

<转自: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>

分享到:
评论
1 楼 zalbelieve 2009-07-03  
写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!写得很好!!

相关推荐

    Struts 2综合应用实例——添加学生信息

    在本实验中,我们将通过构建一个简单的Web应用程序——添加学生信息——来深入理解并掌握Struts 2框架的应用。此实验旨在帮助学习者熟悉Struts 2的各种核心组件和技术,包括但不限于标签库、配置文件设置以及与...

    struts_进阶

    具体做法是在`reset()`方法中调用`initialize()`方法。 ```java public class CustomDynaActionForm extends DynaActionForm { @Override public void reset(ActionMapping mapping, HttpServletRequest request)...

    struts原理与实践二)

    在登录示例中,有两个JSP页面——logon.jsp(登录界面)和main.jsp(用户成功登录后的欢迎页面)。 5. **MessageResources**: 用于国际化的文本资源,通常存储在ApplicationResource.properties文件中。 现在,...

    STRUTS开发笔记(anifo总工程师安坤原创))

    3. **配置Web.xml:** 在项目的`web.xml`文件中配置STRUTS的核心组件——`ActionServlet`。具体的配置代码如下所示: ```xml &lt;servlet-name&gt;action &lt;servlet-class&gt;org.apache.struts.action.ActionServlet ...

    struts2常用标签

    - **功能**:用于调用Action类中的方法。 - **示例**: ```xml ``` ##### 3. `&lt;s:actionerror/&gt;` 和 `&lt;s:actionmessage/&gt;` - **功能**:分别用于显示Action中的错误信息和消息提示。 - **示例**: ```xml ...

    精通Struts--Java流行服务器、框架及工具整合应用

    ### 精通Struts——Java流行服务器、框架及工具整合应用 #### 3.1 标签库的组成 Struts 框架的核心优势之一在于它的标签库,这是一套专门设计用于简化Web开发过程的工具集合。通过使用这些标签,开发者能够有效地...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    相较于Struts1,Struts2提供了更为强大的功能和更加灵活的设计模式,支持多种表现层技术,并且集成了强大的表达式语言——OGNL(Object-Graph Navigation Language),使得开发者能够更高效地进行Web应用开发。...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。书中...

    低清版 大型门户网站是这样炼成的.pdf

    2.2.1 web.xml中struts 2的配置实现 54 2.2.2 struts 2属性配置文件struts.properties详解 55 2.2.3 struts 2核心配置文件struts.xml详解 57 2.3 struts 2应用开发实务 61 2.3.1 struts 2应用开发环境的搭建 62 ...

    Java Web快速入门——全十讲

    在Java的三大平台中——Java SE(标准版)、Java EE(企业版)以及Java ME(微小版),Java Web开发主要关注的是Java EE。Java EE为Web应用提供了丰富的服务和API,包括但不限于Web容器、Servlet、JSP、EJB(企业级...

    Java_Web快速入门——全十讲

    以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...

    实验考试一.doc

    5. **掌握Struts2拦截器的使用和配置**:深入学习Struts2拦截器的工作原理及配置方法,增强应用程序的灵活性和可扩展性。 6. **熟悉基于Struts2框架的文件上传功能**(扩展实验):了解如何使用Struts2框架实现文件...

    SSH2上传实现

    在现代Web开发中,文件上传是常见的需求之一。本文将详细介绍如何利用SSH2(Struts2 + Spring + Hibernate)框架结合ExtJS前端库实现文件上传功能。具体包括前端界面设计、JavaScript交互逻辑以及后端处理流程。 ##...

Global site tag (gtag.js) - Google Analytics