1. execAndWait interceptor 必须被配置为最后一个interceptor。execAndWait创建的线程只会执行action,在execAndWait之后的interceptor都不回被调用。
search-wait.jsp
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
...
<meta http-equiv="refresh" content="5;url=<ww:url includeParams="all"/>"/>
...
</head>
</html>
2. <ww:token/>
<ww:token name="category.token"/>
--to html-->
<input type="hidden" name="webwork.token.name" bbbbbvalue="category.token"/>
<input type="hidden" name="category.token" bbbvalue="***32位字符***"
并使用TokenInterceptor或者TokenSessionStoreInterceptor(handleValidToken()在session中保存actionInvocation和token的对象,如有重复提交,则从session中取出)
3.通过配置浏览器查看配置
(1)得到webwork-config-browser.jar文件,并放在WEB-INF/lib下面。
(2)修改xwork.xml<include file="config-browser.xml"/>
(3)修改velocity.properties,添加一个使用配置浏览器末班的宏:
#Velocity宏库
#webwork.vm是webwork的基础库
#tigris-macros.vm是配置浏览器的基础库
velocitymacro.library = webwork.vm, tigris-macros.vm
(4)重启web应用,通过http://localhost:8080/myApp/configbrowser/actionNames.action访问配置浏览器。
4.重新加载资源
在webwork.properties里面设置webwork.configuration.xml.reload=true,则xwork.xml、*-validation.xml、*-conversion.properties在修改之后会被重新加载。
com.opensymphony.xwork.util.LocalizadTextUtil.setReloadBundles(boolean reloadBundles)
只适应于属性文件的ResourceBundles。
5.使用mock对象
MockObjects(http://mockobjects.com)
EasyMock(http://easymock.org).
6. interceptor必须是无状态的,并且不能使用任何ActionInvocation提供的范围以外的API。
7. 表达式语言 jstl groovy velocity ognl
分享到:
相关推荐
Struts2、Webwork2 和 DWR 是三个在 Web 开发领域中至关重要的技术,尤其在构建企业级的 WEB2.0 应用程序时。接下来,我们将详细探讨这三个技术的核心概念、工作原理以及它们之间的关系。 **Struts2** 是一个基于 ...
### Struts1、Struts2、WebWork框架中的线程安全问题分析 #### 一、Struts1与线程安全问题 在Struts1中,每个`Action`类实例是被多个请求重用的,这使得它在多线程环境下存在潜在的线程安全问题。当多个线程同时...
在这个压缩包中,"struts2+webwork"可能包含了Struts2和WebWork相关的配置文件、Action类、JSP视图文件等,展示了如何在同一个项目中同时使用这两个框架。而Spring的相关文件可能包括了配置文件(如...
Struts2是对WebWork框架的重大升级和改进,它在保留WebWork强大特性的基础上,引入了更多优化和新特性,使得整个框架更加灵活且易于使用。以下将详细阐述Struts2对WebWork的改进点: 1. **配置文件的多样化**: 在...
- **历史背景**:WebWork最初由Coyote开源软件公司开发,后来与Struts项目合并为Struts 2,成为Apache Struts的一部分。本书撰写时,WebWork仍作为独立框架存在,拥有独特的设计理念和优势。 - **核心特性**: - ...
Struts2是在Struts1的基础上发展起来的,它融合了WebWork框架的理念和技术,提供了更强大的功能和更好的灵活性。Struts2的核心组件包括Action、Interceptor(拦截器)、ValueStack和配置文件(struts.xml)。 1. **...
Struts2是Struts1的后续版本,它吸取了其他框架如Spring、WebWork的优点,提供了更强大和灵活的特性。Struts2的核心组件包括Action、Interceptor、Result和配置文件(struts.xml或struts.properties)。 1. **...
- **Action与ActionForm**:在WebWork中,Action类负责处理请求,而ActionForm类(在Struts2中已被Action取代)用于收集和验证表单数据。 - **XWork容器**:WebWork依赖于XWork容器来管理Action和拦截器,这个容器...
WebWork的这些特性被集成到Struts 2中,使得Struts 2成为了一个高效且易用的MVC框架。 **Struts 2的生命周期**: 1. 用户发起HTTP请求。 2. Struts 2 框架接收到请求,解析请求参数。 3. 拦截器链开始执行,按照...
接下来是Struts 2,它是Struts 1的升级版,由Struts 1和WebWork框架合并而成,于2007年发布。Struts 2在很多方面都进行了改进,比如使用OGNL(Object-Graph Navigation Language)作为表达式语言,提供了更灵活的...
Webwork in Action是一个关于Webwork框架的实战指南,该框架是Struts2的前身,对理解和掌握Struts2有着重要的作用。Webwork是一款强大的MVC(Model-View-Controller)框架,它为Java web开发提供了高效、灵活的解决...
通过阅读《WebWork In Action》这本书,开发者不仅可以深入理解WebWork框架,还能掌握Struts 2的精髓,提升在Java Web开发中的技能。书中的PDF文档很可能是对这些知识点的详细讲解和实例演示,对于学习和进阶WebWork...
Struts 2的发展历程始于WebWork,一个由James Holmes在2003年创建的框架,旨在解决早期Struts框架的一些局限性。WebWork以其灵活的动作映射、强大的拦截器机制和对Ajax支持的增强而闻名。 WebWork的核心设计理念是...
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
例如,WebWork的Action被映射到Struts2的Action,而WebWork的结果(Result)在Struts2中依然保留,但使用了新的配置方式。 然而,尽管Struts2借鉴了很多WebWork的特性,但也进行了一些删减和调整。例如,Struts2...
《Struts 2 in Action》是一本专注于Struts 2框架的权威技术指南,由业界专家撰写,旨在帮助开发者深入理解和高效使用这个流行的MVC框架。Struts 2是Java Web开发中的重要组件,它继承了Struts 1的优秀特性,并结合...
《Struts 2实战》结合实例介绍了Struts 2框架,主要内容包括Action、Result、Interceptor等框架组件,基于注解的配置选项等新特征,Struts 2插件 FreeMarker,如何从Struts 1和WebWork 2迁移到Struts 2,Ajax标签、...
struts2的内核是基于webwork构建起来的。个人认为本书是学习struts2的最佳参考书,其最牛逼之处在于不仅让你知其然,还会知其所以然,其字里行间流露出的框架设计理念非常精彩,深刻而又清晰,每每让我拍案叫绝。...