sitemesh定义多个装饰器问题

xiaorenwu007 2010-03-03 06:58:53
sitemesh定义多个装饰器时老是全部装饰
<decorators defaultdir="/WEB-INF/decorators">
<decorator name="frontmainframe" page="mainframe.jsp">
<pattern>/*</pattern>
</decorator>
<decorator name="backmainframe" page="backmainframe.jsp">
<pattern>/jsp/backviewer/*</pattern>
</decorator>
</decorators>
如果写成如下这样:
<decorators defaultdir="/WEB-INF/decorators">
<decorator name="frontmainframe" page="mainframe.jsp">
<pattern>/jsp/frontviewer/*</pattern>
</decorator>
<decorator name="backmainframe" page="backmainframe.jsp">
<pattern>/jsp/backviewer/*</pattern>
</decorator>
</decorators>
则一个页面也不装饰!!
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qing393260529 2010-12-28
  • 打赏
  • 举报
回复
qing393260529 2010-12-28
  • 打赏
  • 举报
回复
概述 Struts 2.0提供一个Sitemesh插件,允许在Sitemesh模板中使用Struts标记。 要使用Sitemesh需要包含Freemark,SitemeshSitemesh插件库文件。 配置过滤器 如果需要使用Freemark模板文件作为装饰器文件,需要在web.xml文件中添加如下配置: xml 代码 struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp filter> sitemesh com.opensymphony.module.sitemesh.filter.PageFilter filter> struts2 org.apache.struts2.dispatcher.FilterDispatcher filter> struts-cleanup /* filter-mapping> sitemesh /* filter-mapping> struts2 /* filter-mapping> 注意ActionContextCleanUp过滤器必须在FilterDispatcher之前配置,ActionContextCleanUp的主要功能是通知FilterDispatcher执行完毕不要清除ActionContext,以便sitemesh装饰器可以访问Struts值堆栈。 配置装饰器 在WEB-INF目录下创建一个decorator.xml文件,指定装饰器需要匹配哪些文件,下述示例指定main.flt将装饰所有的jsp文件: xml 代码 xml version="1.0" encoding="ISO-8859-1"?> /exclude.jsp /exclude/* /* decorators> 如果需要自定义装饰器映射器,需要在WEB-INF目录下创建一个sitemesh.xml文件(通常从发布包中拷贝过来更改相应部分)。这一步骤是可选的,通常缺省的配置就能够满足要求。 定义装饰器文件 缺省情况下,sitemesh假定装饰器文件保存在应用上下文根路径下的decorators目录下,如果采用如上配置,装饰器文件应该是ftl格式,如果需要使用其他格式,需要更改过滤器配置。

62,584

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧