`
nighty
  • 浏览: 5743 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2.2.1关于sitemesh和freemarker整合的细节

阅读更多

     有段时间没有使用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模板中起作用。

 

1
0
分享到:
评论
2 楼 NineInchNails 2012-04-09  
好久没有用s2了
1 楼 sohoku 2011-04-22  
解释的很详细

相关推荐

    MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案

    本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    `struts2-sitemesh-plugin-2.2.1.1.jar`是Struts2框架与Sitemesh集成的插件,使得Struts2应用能够利用Sitemesh的功能来美化和规范化页面布局。 **Struts2框架** Struts2的核心功能包括动作映射、结果处理、数据绑定...

    struts2.2.1开发文档

    7. **插件和自定义组件**:介绍Struts2的可扩展性,如使用FreeMarker或Velocity作为视图技术,以及如何开发和使用自定义插件来扩展框架功能。 8. **表单和验证**:详细阐述了Struts2的表单处理和数据验证机制,包括...

    struts2.2.1-core

    Struts2.2.1是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,用于构建和维护MVC(模型-视图-控制器)架构的应用程序。该框架的核心在于提供了一种灵活的方式来组织和控制应用程序的...

    Struts2.2.1帮助文档

    Struts2.2.1 api, Struts2.2.1帮助文档, CHM格式文件

    struts2.2.1jar包

    下面我们将深入探讨Struts2框架及其2.2.1版本中的关键组件和功能。 1. **Struts2框架核心**: - `struts2-core-2.2.1.jar`:这是Struts2的核心库,包含了处理HTTP请求、执行Action、处理结果以及与视图交互的所有...

    ssh(struts2.2.1+_hibernate3.6+spring3.0.5)整合配置

    下面将详细介绍如何整合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.2.1+Spring3.1.0.M2+Hibernate3.5.1整合配置demo

    整合Struts2、Spring和Hibernate的关键在于它们之间的协调工作。首先,Spring作为容器,管理所有Bean,包括Struts2的Action和Hibernate的SessionFactory。Action类通常由Spring进行实例化和管理,这样就可以利用...

    Struts2.2.1关键jar包

    7. **Struts2与Spring的整合**:描述中提到的"整合spring"是指Struts2可以通过Struts2-Spring-plugin来与Spring框架集成,实现依赖注入(DI)和面向切面编程(AOP)。这使得开发者可以利用Spring的强大功能来管理...

    spring3.0.5_hibernate3.5.3_struts2.2.1整合jar包

    它不仅提供了这三个核心框架的jar包,还包含了一些额外的组件,如junit4测试库和jdbc驱动,以及SSH(Spring、Struts、Hibernate)框架的注解支持和整合插件。 Spring 3.0.5是Spring框架的一个版本,它提供了一种...

    struts2.2.1开发包

    Struts2.2.1开发包是一个针对Web应用的重要框架,它是Apache软件基金会下的一个开源项目,主要用于构建基于Java的企业级应用程序。这个版本的Struts2是一个强大的MVC(Model-View-Controller)框架,旨在简化开发...

    struts2.2.1 API chm格式

    欢迎大家下载,struts2.2.1 API chm格式

    已配置好Struts2.2.1GA的WEB-INF

    在Struts2.2.1GA版本中,这个框架已经相当成熟,提供了一套完整的功能和插件来简化开发流程。 标题中的“已配置好Struts2.2.1GA的WEB-INF”指的是一个已经包含了所有必要配置文件和库的WEB-INF目录,这个目录是Java...

    Spring 3.0+Hibernate 3.6+Struts2.2.1详解

    在本项目中,我们探讨了如何整合Spring 3.0、Hibernate 3.6和Struts2.2.1这三大框架,以构建一个高效、灵活的企业级Web应用程序。这三者结合,提供了模型-视图-控制器(MVC)架构、持久层管理和AOP(面向切面编程)...

    struts2.2.1_help文档

    这个"struts2.2.1_help文档"提供的是一份详细的帮助文档,旨在协助开发者理解和使用Struts2.2.1框架进行开发工作。CHM(Compiled Help Manual)格式是一种微软编译后的帮助文件,通常包含了索引、目录和搜索功能,...

    struts2.2.1-xwork

    Struts2.2.1是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的开源Java Web应用框架。Struts2是Struts1的升级版,它提供了更强大的功能和更好的性能。XWork是Struts2的核心组件,负责...

    struts2.2.1chm帮助文档

    struts2.2.1帮助文档,chm格式,让您在学习struts时边学边查阅,方便快捷

    Struts 2.2.1的Ajax整合jQuery 1.4和Dojo 2.0框架的编程示例

    说明:Struts2天生成Spring整合的,所在“整容”之后,Struts2的使用看上去比较简单;它与客户端的Ajax框架的整合也非常容易;本示例整合了jQuery 1.4版本框架,同时也使用dojo框架来完成struts2的属性页标签。 使用...

    SSH2(struts2.2.1 + hibernate3.6 +spring3.0.4)整合的例子

    struts2.2.1 + hibernate3.6 +spring3.0.4 整合例子

    整合struts2.2.1+spring3.0.4+hibernate3.6选择jar包

    ### 整合Struts2.2.1+Spring3.0.4+...通过以上介绍,我们可以清晰地了解到在整合Struts2.2.1、Spring3.0.4和Hibernate3.6时所需的具体JAR包。正确选择和配置这些包对于构建稳定高效的Java Web应用程序至关重要。

Global site tag (gtag.js) - Google Analytics