sitemesh排除装饰action的心得

转载 2013年12月05日 12:28:06

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>



参考:http://coos.group.iteye.com/group/wiki/1802-action-to-exclude-sitemesh-decoration-tips


jsp错误页面导航error page的使用

web.xml: 这种写法在ie浏览器下有问题. 必须在IE【工具】->【Internet选项】->【高级】中勾掉【显示友好http错误提示】; 但我们不能控制客户的浏览器 ...
  • liuao107329
  • liuao107329
  • 2016年03月22日 14:33
  • 1136

在web.xml中配置error-page

知道在web.xml中有两种配置error-page的方法,一是通过错误码来配置,而是通过异常的类型来配置,分别举例如下:  一.   通过错误码来配置error-page  Eg.  Xml代...
  • z69183787
  • z69183787
  • 2013年11月13日 13:39
  • 2342

sitemesh异常及解决

整合以前的老系统,当访问某一Action并跳转到某一页面时,sitemesh报异常如下: java.lang.ArrayIndexOutOfBoundsException: -1 at com.op...
  • im110
  • im110
  • 2011年02月23日 14:48
  • 2258

SiteMesh 过滤不装饰的页面

SiteMesh 过滤不装饰的页面
  • educast
  • educast
  • 2015年11月01日 10:37
  • 2101

sitemesh/decorators装饰器与jsp页面中include的区别

今天研究了一下项目中使用的装饰器框架:sitemesh 相同点:都能提高公共模块的复用性,提高开发效率。 不同点:include需要把需要用到的jsp文件写死到每一个jsp文件中,而sitemes...
  • reggergdsg
  • reggergdsg
  • 2016年02月29日 18:21
  • 3443

如何用sitemesh---------- 装饰模式

第一步:web.xml配置 第二部:decorate.xml配置 第三部:装饰页面 操作:第一步:web.xml sitemeshFilter com.opensymphony.si...
  • u014236541
  • u014236541
  • 2016年04月22日 10:50
  • 3432

活用SiteMesh,一个装饰器就可支撑整个网站结构

http://blog.csdn.net/tanghw 在寻求网站结构的高效统一上,SiteMesh通过Decorator的设计模式,十分利索地达到了目的。其设计思想是,用户发送requ...
  • wen303614
  • wen303614
  • 2014年09月05日 16:58
  • 724

SiteMesh页面装饰器的使用步骤

1、往j2
  • kpchen_0508
  • kpchen_0508
  • 2014年11月19日 14:40
  • 4340

关于sitemesh装饰器的使用方式

decorator.xml 放在WEB-INF下面 /login.* /css/*
  • aini593612180
  • aini593612180
  • 2017年06月29日 11:51
  • 152

sitemesh来装饰动态的左侧菜单和内容部分

sitemesh来装饰动态的左侧菜单和内容部分        sitemmesh是一个页面装饰框架,利用它可以很简单的对整个系统进行统一架构装饰,比如一个应用系统的web层可能就是top+l...
  • dapeng3306
  • dapeng3306
  • 2015年03月25日 22:38
  • 390
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sitemesh排除装饰action的心得
举报原因:
原因补充:

(最多只允许输入30个字)