`

sitemesh排除装饰action的心得

阅读更多

sitemesh装饰模式的强大就不用说了,但使用过程中遇到的最郁闷的莫过于排除装饰action的困扰了,例如使用某个ajax请求要求返回不装饰的数据,但sitemesh却死活给你装饰了,以前用了个小技巧绕过了sitemesh的装饰--在返回的头部声明为xml类型:ServletActionContext.getResponse().setContentType("text/xml;charset=utf-8");

看了文档知道sitemesh默认装饰所有text/html的页面的,要装饰其他类型的页面还得自己配置。

但是总觉得这样很麻烦,况且有些页面是对外公开的api页面,只需要显示内容给其他iframe嵌入,这个时候如何排除呢?

在excludes里面排除的却总是不起作用!

经过查阅文档和不断的实践终于发现无法排除的原因了,原来排除的是相对于url目录层次的,而非文件所在的目录!

 

<!-- 在excludes元素下指定的页面将不会由SiteMesh来装饰 -->
 <excludes>
  <pattern>/index.jsp</pattern>
  <pattern>/scripts/*.*</pattern>
  <pattern>/htmleditor/*.*</pattern>
  <pattern>/chart/*.*</pattern>//排除chart目录下的所有action请求
  <pattern>/flash/*.*</pattern>
  <pattern>/other/*.*</pattern>
  <pattern>/remote_requst.action*</pattern>//排除根目录下的remote_requst.action包括带参数的请求,如果action后面不带*则只能排除不带参数的请求
 </excludes>

<decorator name="global" page="global.ftl">
  <pattern>*.action</pattern>
 </decorator>
 <decorator name="editor" page="blog.ftl" webapp="/editor/">
  <pattern>/editor/*.action</pattern>
 </decorator>
 
 <decorator name="browser" page="blog.ftl" webapp="/browser/">
  <pattern>/browser/*.action</pattern>
 </decorator>
 
 <decorator name="admin" page="admin.ftl" webapp="/admin/">
  <pattern>/admin/*.action</pattern>
 </decorator>

分享到:
评论
1 楼 天亮了说晚安 2010-06-24  
不错,遇到过同样的问题的,整了好久,现在解决了,非常感谢!

相关推荐

    sitemesh装饰器入门

    **Sitemesh装饰器入门** Sitemesh 是一个开源的 Web 应用程序框架,它主要用来帮助开发者实现页面布局和装饰功能。Sitemesh 的核心概念是“装饰器”,这个概念源自于软件设计模式中的装饰者模式。通过使用 Sitemesh...

    页面装饰器(sitemesh)实例源代码

    页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得开发者可以方便地实现统一的页面头部、尾部、侧边栏等元素,从而提高网站的整体风格一致性。在本实例中,我们...

    sitemesh

    **Sitemesh** 是一个广泛使用的开源Web应用框架,它主要功能是提供页面布局和装饰功能,用于统一网站的外观和感觉。Sitemesh通过在Web应用中引入“母版”(Master Page)的概念,使得开发者可以轻松地创建一致性的...

    sitemesh2 集成velocity 装饰页面乱码

    本案例涉及的是将sitemesh2与velocity框架进行集成,以实现页面装饰功能。sitemesh是一款开源的Web页面布局和装饰框架,而velocity则是一个轻量级的Java模板引擎,用于生成动态网页内容。下面我们将深入探讨这个集成...

    sitemesh框架简单例子

    Sitemesh是一款强大的Web页面布局和装饰框架,它主要用于帮助开发者实现网站的统一外观和感觉。这个框架的主要功能是将页面的主体内容与页眉、页脚、侧边栏等通用部分分离,使得在大量网页中保持一致的设计风格变得...

    java sitemesh 页面框架

    Java Sitemesh是一个开源的页面布局和装饰框架,它的主要目标是帮助开发者统一网站的外观和感觉,提高代码复用性,并简化页面的复杂性。Sitemesh通过将页面分为内容区域和装饰模板来实现这一目标,使得开发者可以...

    SiteMesh教程.pdf

    SiteMesh是一种用于Java Web应用的装饰器设计模式框架,主要通过拦截Web页面请求,动态地将装饰页面如头部(header)、底部(footer)、样式表(stylesheet)和脚本文件(scripts)等页面元素与实际页面组合在一起,...

    sitemesh入门demo

    Sitemesh 提供了一种优雅的方式来组织和装饰Web页面,通过定义模板和装饰器,可以统一整个网站的头部、底部、侧边栏等元素,提高开发效率和代码复用性。 在"**sitemesh入门demo**"中,我们将学习如何设置和使用...

    siteMesh demo+文档

    SiteMesh 是一个开源的Web应用程序布局和装饰框架,主要用于解决Web应用中的页面布局问题。它通过拦截HTTP请求,将页面内容与预定义的布局模板相结合,实现统一的页面头部、底部和侧边栏等元素,从而提高网站的整体...

    Struts2整合SiteMesh

    5. **排除不需要装饰的页面**:如果有特定页面不想被SiteMesh装饰,可以在Struts2的action配置中指定排除模式,例如: ```xml &lt;action name="noDecorationAction" class="com.example.NoDecorationAction"&gt; ...

    SiteMesh教程及SiteMesh官方文档翻译

    当用户访问`/index.jsp`时,SiteMesh会自动使用之前定义的装饰器页面对其进行装饰,从而呈现出完整的页面布局。 #### Sitemesh对于性能的影响 为了评估SiteMesh对Web应用程序性能的影响,进行了一系列的测试。 **...

    SiteMesh

    SiteMesh 是一个开源的Web应用程序框架,主要用于帮助开发者实现页面布局和装饰功能。它通过拦截HTTP请求,将页面内容与布局模板相结合,从而提供了一种简单有效的方式来管理和控制Web应用的外观和感觉。在Web开发中...

    sitemesh3-demo

    【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...

    sitemesh-3.0.1.jar

    sitemesh 装饰页面技术.

    sitemesh3官方下载包

    **Sitemesh3** 是一个开源的网页布局和装饰框架,用于Java Web应用程序。它主要目的是帮助开发者统一网站的外观和感觉,通过提供一种简单的方式来装饰(或模板化)整个Web应用中的页面。Sitemesh3是Sitemesh项目的第...

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    安装此插件后,开发者可以在Struts2的Action配置中指定一个模板,这个模板将被Sitemesh自动装饰。 **配置Struts2 Sitemesh插件** 1. 将`struts2-sitemesh-plugin-2.2.1.1.jar`添加到项目的类路径中。 2. 在`struts....

    sitemesh布局知识点汇总

    - **装饰模式的应用**:Sitemesh采用了GOF的装饰者模式,并将其应用于过滤器中,这意味着被装饰的页面无需知道具体的装饰逻辑,大大增强了灵活性。 - **多源内容装饰**:Sitemesh可以装饰来自不同技术栈的内容,如...

    Sitemesh 3 的使用及配置

    这里的配置表示所有以“/*”结尾的页面都将被“/WEB-INF/views/decorators/decorator.html”装饰,而所有以“/exclude.jsp*”开头的页面将被排除在外,不会被装饰。 #### 六、运行效果 当访问`demo.html`页面时,...

    siteMesh使用示例

    例如,可以为静态资源(如 CSS、JavaScript 文件)设置排除规则,避免不必要的装饰操作。 10. **总结** SiteMesh 提供了一种简单有效的方式来进行页面布局,使得开发者可以专注于业务逻辑,而不必担心页面的统一...

Global site tag (gtag.js) - Google Analytics