我想从装饰中排除一组页面(使用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/*
,但这也不起作用。
答案 0 :(得分:1)
我通过提供绝对路径来实现它,例如/spring/data/tabs/*
,(web.xml拦截/spring/*
并发送到DispatcherServlet)。
答案 1 :(得分:0)
web.xml是启动webapp的容器读取的主要属性文件 它将截取点作为应用程序的起点,因此您对文件进行的每个定义都将从此处开始作为相对路径。
答案 2 :(得分: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" />