0

我想从装饰中排除一组页面(使用 sitemesh 2 和 spring-mvc 3.1)。这是我的 decorators.xml:

<decorators defaultdir="/WEB-INF/decorators">
    <excludes>
        <pattern>/WEB-INF/view/data/tabs</pattern>
    </excludes>
    <decorator name="main" page="main.jspx">
        <pattern>/WEB-INF/view/*</pattern>
        <pattern>/*</pattern>
    </decorator>
</decorators>

然后在我的页面中,我使用带有 ajax 加载页面的 jquery-ui 选项卡,如下所述:http: //jqueryui.com/demos/tabs/#ajax。所以显然我不想再次装饰标签中的内容!除了上面列出的内容之外,我已经尝试将模式放在/WEB-INF/view/data/tabs/*上面,但这也不起作用。

4

3 回答 3

1

我通过提供绝对路径使其工作,例如/spring/data/tabs/*,(web.xml 正在拦截/spring/*并发送到 DispatcherServlet)。

于 2012-04-07T21:21:47.363 回答
0

web.xml 是容器在​​启动 web 应用程序时读取的主要属性文件。
它将拦截点作为应用程序的起点,因此您对文件进行的每个定义都从该点开始作为相对路径。

于 2012-04-07T21:49:46.357 回答
0

我有同样的问题,我通过这种方式解决了添加一个名为“no”的新装饰器:

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/layouts/">
    <excludes>
        <pattern>/static/*</pattern>
        <pattern>/api/*</pattern>
        <pattern>/</pattern>
    </excludes>
    <decorator name="default" page="default.jsp">
        <pattern>/*</pattern>
    </decorator>
    <decorator name="no" page=""></decorator>
</decorators>

并将元数据添加到您不想使用装饰器的页面中:

<meta name="decorator" content="no" />
于 2014-11-21T09:19:40.317 回答