我想要多个装饰器,如这里所述:https://github.com/sitemesh/sitemesh2。我在decorators.xml中提供了多个装饰器,但是主装饰器应用于我的项目中的每个文件。例如,我的装饰器看起来像这样:
<decorators defaultdir="/WEB-INF/decorators">
<decorator name="main" page="main.jspx">
<pattern>/*</pattern>
</decorator>
<decorator name="other" page="other.jspx">
<pattern>/spring/other/*</pattern>
</decorator>
</decorators>并且/spring/some/page.jspx和/spring/other/page.jspx都使用`main.jspx的模板进行渲染。
我做错了什么?
发布于 2012-04-10 02:29:55
我知道文档示例与这个想法相矛盾,但是如果您需要尝试一些东西--尝试重新排序您的装饰器,如下所示:
<decorators defaultdir="/WEB-INF/decorators">
<decorator name="other" page="other.jspx">
<pattern>/spring/other/*</pattern>
</decorator>
<decorator name="main" page="main.jspx">
<pattern>/*</pattern>
</decorator>
</decorators> 根据我的记忆,我认为Sitemesh使用了第一个匹配的装饰器模式,并且按照您指定的顺序,它将始终是“主”装饰器。
发布于 2012-04-08 07:59:38
使用以下内容:
<decorators defaultdir="/WEB-INF/decorators">
<decorator name="main" page="main.jspx">
<pattern>/spring/main/*</pattern>
</decorator>
<decorator name="other" page="other.jspx">
<pattern>/spring/other/*</pattern>
</decorator>
</decorators> 告诉我它有没有用。
https://stackoverflow.com/questions/10059326
复制相似问题