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

struts-ActionForm:reset()详解

    博客分类:
  • J2EE
阅读更多

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中ActionForm的validate方法使用小得

    struts提供了<html:errors/>标签来显示整个ActionErrors的错误信息。但要在struts-config.xml中设置<action ...

    struts 视频 struts视频 actionform

    struts 视频 struts视频 actionform

    提交多行数据到Struts的ActionForm的List属性中

    NULL 博文链接:https://arang.iteye.com/blog/420546

    struts1使用actionform实现表单验证

    struts1使用actionform实现表单验证,表单验证失败追加信息。

    org.apache.struts缺少所需包

    import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少

    struts 标签 logic:iterate使用 logic:iterate

    我就是靠这个文档实现logic:iterate的循环的 struts 标签 logic:iterate使用 logic:iterate <br>第一页 是struts官方的说明, 第二页 是个例子 第三页 是我实现的arrayList放入标签的方法。 这是页面...

    struts中静态ActionForm基本验证

    主要是actionForm的基本验证,重写validate方法,返回actionErrors,然后根据资源文件显示错误。 这是一个demo例子,直接导入eclispe中即可。 并且这部分内容会在相应的博客中介绍,稍后会更新博客。

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的...

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    3 import org.apache.struts.action.ActionForm; 4 import org.apache.struts.action.ActionMapping; 5 6 /** 7 * MyEclipse Struts 8 * Creation date: 11-10-2005 9 * 10 * XDoclet definition: 11 * @...

    struts框架详细介绍

    介绍Struts各个组成: struts-config.xml Struts配置文件 ActionServlet 控制器 Action Class 包含事务逻辑 ActionForm 显示模块数据

    Struts1.3 备忘笔记

    05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,但是它不能实现验证功能,演示人机交互实例。 06 Struts_06Filter : 中文编码的统一处理,通过Struct的请求...

    STRUTS ActionForm乱码,servlet全局过滤器转义编码。

    STRUTS ActionForm乱码,servlet全局过滤器转义编码

    struts2配置详解

    3、Struts1 的验证逻辑编写在 ActionForm 中; Struts2 中的验证逻辑编写在 Action 中. 4、Struts1 中, Action 类必须继承 org.apache.struts.action.Action 类; Struts2 中任何一个 POJO 都可以是一个 Action 类. 5...

    Struts_学习笔记之ActionForm

    Struts_学习笔记之ActionForm,简单配置即可达到效果

    struts1 用户登录(包含验证)

    使用struts1框架实现用户登录,那么就需要新建两个类,比如:LoginForm、LoginAction继承ActionForm、Action,配置struts-config.xml配置文件

    Struts Hibernate Spring 集成开发宝典 actionform

    Struts Hibernate Spring 集成开发宝典 actionform 有研究或探讨或开源的请加群:37424970 或联系本人MSN或邮箱:zhuseahui@yahoo.com.cn

    struts中配置动态ActionForm

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    Struts2教程

    3. 编写 ActionForm 类(一般从 org.apache.struts.action.ActionForm 类继承),这一步 不是必须的,如果要接收客户端提交的数据,需要执行这一步。 4. 在 struts-config.xml 文件中配置 Action 和 ActionForm 。 5...

    Struts原理、开发及项目实施

    size="30" maxlength="50"/> </td><br/> </tr><br/> <tr><br/> <td align="right"><br/> <html:submit property="submit" value="Submit"/> </td><br/> <td align="left"><br/> <html:reset/> </td>...

    struts面试宝典.pdf

    在Struts中,用户的请求一般以*.do作为请求服务名,所有的请求均被指向ActionServlet,ActionServlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的ActionForm,并将此ActionForm传至指定的...

Global site tag (gtag.js) - Google Analytics