【问题标题】:sitemesh page exclusion站点网格页面排除
【发布时间】:2023-03-13 09:11:01
【问题描述】:

我想从装饰中排除一组页面(使用 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/*,但这也不起作用。

【问题讨论】:

    标签: java sitemesh


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我有同样的问题,我解决的方法是添加一个名为“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" />
        

        【讨论】:

        • 这是最好的方法@v11 吗?
        • 不确定这是否是最好的方法。但它对我有用。
        • 是的!它工作得很好..让我们看看是否有人回答
        猜你喜欢
        • 2011-03-30
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-04
        • 2021-06-29
        相关资源
        最近更新 更多