1.定义你自己的拦截器栈:
<interceptors>
<interceptor-stack name="submitToken">
<interceptor-ref name="token-session"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
2.在需要防止重复提交的action里添加刚刚定义的拦截器栈,像这样:
<action name="sendMessage" class="net.jbbs.webwork.MessageAction" method="send">
<result name="success" type="dispatcher">
<param name="location">getMessagesList.action?type=sendbox</param>
</result>
<result name="fail" type="dispatcher">
<param name="location">sendMessage.jsp</param>
</result>
<result name="invalid.token" type="dispatcher">
<param name="location">sendMessage.jsp</param>
</result>
<interceptor-ref name="submitToken"/>
</action>
3.修改相应的包含提交表单的jsp文件,在这里是sendMessage.jsp:
<ww:token name="sendMessageToken"/>
做完上面三个步骤,应该可以实现防止重复提交了(注意其中彩色字体的地方)。
接着分析一下这里为什么用的是token-session(com.opensymphony.webwork.interceptor.TokenSessionStoreInterceptor), 而不是token(com.opensymphony.webwork.interceptor.TokenInterceptor). 它们的区别是当发生重复提交的时候,token-session会根据action的状态显示相应的页面而不执行相应的action,而token则会显示invalid.token对应的页面。token-session的用户体验无疑要好一些,有多少用户喜欢出错信息呢?。
分享到:
相关推荐
例如,在处理多个用户对象的创建时,可以通过在页面上设置多个文本框来接收用户的输入信息,并通过表单提交给服务器端进行处理。 下面是一个具体的示例: ##### 示例代码 **index.jsp** - 页面代码示例: ```jsp...
WebWork是一个基于Java的开源MVC(模型-视图-控制器)框架,它在早期的Web开发中被广泛使用,特别是在Struts1之后,作为替代方案出现。本篇将介绍WebWork的基础知识,特别是它的类型转换机制,这对于理解Web应用程序...
在提供的"Webwork2 Guide.pdf"文档中,你可能会学习到如何安装配置WebWork2环境,创建和运行第一个WebWork应用程序,理解Action和Interceptor的工作原理,以及如何利用WebWork的特性进行表单处理、异常管理和国际化...
WebWork是一个基于Java的开源MVC(模型-视图-控制器)框架,它为构建Web应用程序提供了强大的支持。WebWork的核心在于它的动作框架,它允许开发者通过简单的接口处理用户请求并控制应用程序流程。在WebWork的运行...
WebWork 2.0提供了强大的输入校验功能,能够自动检测和处理表单提交的数据,确保数据的有效性和安全性。这一特性对于构建健壮的Web应用程序至关重要,可以有效防止常见的安全漏洞,如SQL注入和跨站脚本攻击。 #####...
ActionForm则作为模型和视图之间的数据载体,用于封装表单提交的数据。 3. **Interceptors(拦截器)**:WebWork2引入了拦截器的概念,它们在Action执行前后执行,可以用于日志记录、事务管理、权限验证等。拦截器...
6. **Form Handling**:WebWork自动处理表单提交,支持表单验证和类型转换,减少了处理用户输入的繁琐工作。 7. **Internationalization (i18n) and Localization (l10n)**:框架内置对国际化和本地化的支持,使得...
1. 智能表单绑定:WebWork2.0支持自动将HTTP请求参数绑定到Action的属性,减少了手动处理请求参数的代码。 2. 强大的异常处理:WebWork2.0提供了一套完善的异常处理机制,可以将异常转换为用户友好的错误信息。 3. ...
WebWork 是一个基于 Java 的开源 MVC(Model-View-Controller)框架,它在早期的 Web 应用开发中非常流行,尤其是在 Struts 1 之前。WebWork 提供了强大的动作(Action)处理、类型转换、拦截器(Interceptor)机制...
WebWork 是一个基于Java的开源MVC(Model-View-Controller)框架,它主要用于构建企业级的Web应用程序。WebWork1.4是该框架的一个较早版本,它为开发者提供了强大的功能,包括动作映射、数据绑定、异常处理、国际化...
当表单提交时,WebWork会针对每个字段执行验证。相反,Model-Driven Action将整个对象模型作为操作单位,模型对象包含所有相关属性,这样可以实现更复杂的数据关联验证。 **ActionContext(Action上下文)** ...
WebWork 2 是WebWork 1 的后续版本,它引入了许多增强和新特性,如增强的动作类型、拦截器、更好的类型转换机制和更强大的表单回填功能。版本2.2.7是一个稳定版本,包含了一些重要的bug修复和性能优化。`webwork-...
WebWork是一个基于Java的MVC(Model-View-Controller)框架,它在早期的Web开发中扮演了重要的角色,尤其是在Struts之前或作为其替代品出现。WebWork提供了许多先进的特性,如动作拦截器、类型转换、强大的异常处理...
Webwork2的表单类可以方便地与Action结合,简化数据处理过程。 7. **配置(Configuration)**:Webwork2的配置文件定义了URL到Action的映射,Action的转发规则,以及拦截器的配置等。理解配置文件对于有效使用...
4. **强大的表单处理**:WebWork提供了强大的表单绑定和验证功能,可以直接将表单数据绑定到Java对象,同时进行验证。 5. **强大的异常处理**:框架能够优雅地处理异常,将异常信息转化为用户友好的错误页面,提高...