有段时间没有使用struts2了,上了官网发现已经更新到2.2.1版本,没有细看note,照着以前老的方式配置web.xml,发现装饰器sitemesh对freemarker不起作用,折腾了一整天。最后还是老老实实看官方的文档,发现以前书上推荐的配置已经过时。老的一般配置如下:
<filter>
<filter-name>ActionContextCleanUp</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
从struts2.1.3开始ActionContextCleanUp 和 FilterDispatcher过滤器,已经不建议使用了。将使用StrutsPrepareFilter
和StrutsExecuteFilter拦截器替代。正确的配置方式如下:
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>sitemesh-freemarker</servlet-name>
<servlet-class>org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</servlet-class>
<init-param>
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sitemesh-freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>
</listener>
注意:
1. com.opensymphony.sitemesh.webapp.SiteMeshFilter这个过滤器是必需的,否则装饰不起作用
2. 为了支持FreeMaker或Velocity,必须添加org.apache.struts2.sitemesh.FreemarkerDecoratorServlet这个Servlet,官方原话:
写道
From 2.2+ the recommended way to use Freemarker with Sitemesh is through the org.apache.struts2.sitemesh.FreemarkerDecoratorServlet servlet
3. 而已从2.2.x开始,必须添加org.apache.struts2.dispatcher.ng.listener.StrutsListener这个监听器
写道
From 2.2+ the new com.opensymphony.sitemesh.webapp.SiteMeshFilter filter and Struts org.apache.struts2.dispatcher.ng.listener.StrutsListener context listener must be added to web.xml,
4. 这样sitemesh装饰器才能在freemarker模板中起作用。
分享到:
相关推荐
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...
`struts2-sitemesh-plugin-2.2.1.1.jar`是Struts2框架与Sitemesh集成的插件,使得Struts2应用能够利用Sitemesh的功能来美化和规范化页面布局。 **Struts2框架** Struts2的核心功能包括动作映射、结果处理、数据绑定...
7. **插件和自定义组件**:介绍Struts2的可扩展性,如使用FreeMarker或Velocity作为视图技术,以及如何开发和使用自定义插件来扩展框架功能。 8. **表单和验证**:详细阐述了Struts2的表单处理和数据验证机制,包括...
Struts2.2.1是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,用于构建和维护MVC(模型-视图-控制器)架构的应用程序。该框架的核心在于提供了一种灵活的方式来组织和控制应用程序的...
Struts2.2.1 api, Struts2.2.1帮助文档, CHM格式文件
下面我们将深入探讨Struts2框架及其2.2.1版本中的关键组件和功能。 1. **Struts2框架核心**: - `struts2-core-2.2.1.jar`:这是Struts2的核心库,包含了处理HTTP请求、执行Action、处理结果以及与视图交互的所有...
下面将详细介绍如何整合Struts2.2.1、Hibernate3.6和Spring3.0.5。 首先,确保准备好所有必要的库文件,包括: 1. Struts2的struts2-2.2.1-all.zip 2. Hibernate的hibernate-distribution-3.6.0.Final-dist.zip 3. ...
整合Struts2、Spring和Hibernate的关键在于它们之间的协调工作。首先,Spring作为容器,管理所有Bean,包括Struts2的Action和Hibernate的SessionFactory。Action类通常由Spring进行实例化和管理,这样就可以利用...
7. **Struts2与Spring的整合**:描述中提到的"整合spring"是指Struts2可以通过Struts2-Spring-plugin来与Spring框架集成,实现依赖注入(DI)和面向切面编程(AOP)。这使得开发者可以利用Spring的强大功能来管理...
它不仅提供了这三个核心框架的jar包,还包含了一些额外的组件,如junit4测试库和jdbc驱动,以及SSH(Spring、Struts、Hibernate)框架的注解支持和整合插件。 Spring 3.0.5是Spring框架的一个版本,它提供了一种...
Struts2.2.1开发包是一个针对Web应用的重要框架,它是Apache软件基金会下的一个开源项目,主要用于构建基于Java的企业级应用程序。这个版本的Struts2是一个强大的MVC(Model-View-Controller)框架,旨在简化开发...
欢迎大家下载,struts2.2.1 API chm格式
在Struts2.2.1GA版本中,这个框架已经相当成熟,提供了一套完整的功能和插件来简化开发流程。 标题中的“已配置好Struts2.2.1GA的WEB-INF”指的是一个已经包含了所有必要配置文件和库的WEB-INF目录,这个目录是Java...
在本项目中,我们探讨了如何整合Spring 3.0、Hibernate 3.6和Struts2.2.1这三大框架,以构建一个高效、灵活的企业级Web应用程序。这三者结合,提供了模型-视图-控制器(MVC)架构、持久层管理和AOP(面向切面编程)...
这个"struts2.2.1_help文档"提供的是一份详细的帮助文档,旨在协助开发者理解和使用Struts2.2.1框架进行开发工作。CHM(Compiled Help Manual)格式是一种微软编译后的帮助文件,通常包含了索引、目录和搜索功能,...
Struts2.2.1是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的开源Java Web应用框架。Struts2是Struts1的升级版,它提供了更强大的功能和更好的性能。XWork是Struts2的核心组件,负责...
struts2.2.1帮助文档,chm格式,让您在学习struts时边学边查阅,方便快捷
说明:Struts2天生成Spring整合的,所在“整容”之后,Struts2的使用看上去比较简单;它与客户端的Ajax框架的整合也非常容易;本示例整合了jQuery 1.4版本框架,同时也使用dojo框架来完成struts2的属性页标签。 使用...
struts2.2.1 + hibernate3.6 +spring3.0.4 整合例子
### 整合Struts2.2.1+Spring3.0.4+...通过以上介绍,我们可以清晰地了解到在整合Struts2.2.1、Spring3.0.4和Hibernate3.6时所需的具体JAR包。正确选择和配置这些包对于构建稳定高效的Java Web应用程序至关重要。