为 Sitemesh 选择合适的 url 模式以将我的 servlet 从其装饰器中排除?

Posted

技术标签:

【中文标题】为 Sitemesh 选择合适的 url 模式以将我的 servlet 从其装饰器中排除?【英文标题】:Choosing an appropriate url pattern for Sitemesh to exclude my servlet from its decorators? 【发布时间】:2011-04-11 14:09:51 【问题描述】:

我使用 servlet 配置了我的 Spring Web 应用程序以在 URL 上提供图像:

/imgsrv?imgid=12345

我也安装了 Sitemesh,现在当我调用这个图像 servlet 时,我得到一个与这个 servlet 相关的装饰器异常,它不需要应用装饰器。

According to the Sitemesh docs,您可以将某些 URL 排除在应用装饰器之外,但语法对我来说并不清楚。

以下哪种模式似乎最适合将上述 URL 排除在“装饰”之外:

<decorators defaultdir="/WEB-INF/view/decorators">
    <excludes>
        <pattern>/imgsrv*</pattern>
        <pattern>/imgsrv/*</pattern>
        <pattern>/imgsrv**</pattern>
        <pattern>/imgsrv/**</pattern>
        <pattern>/imgsrv*.*</pattern>
        <pattern>/imgsrv/*.*</pattern>
    </excludes>
    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>
</decorators>

【问题讨论】:

【参考方案1】:

我认为这就足够了:

<decorators defaultdir="/WEB-INF/view/decorators">
    <excludes>
        <pattern>/imgsrv</pattern>
    </excludes>
    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>
</decorators>

您正在直接映射到已知的 servlet 路径。您不需要通配符来处理参数(如?imgid=12345)。

【讨论】:

以上是关于为 Sitemesh 选择合适的 url 模式以将我的 servlet 从其装饰器中排除?的主要内容,如果未能解决你的问题,请参考以下文章

SiteMesh2-sitemesh.xml的PageDecoratorMapper映射器的用法

sitemesh 使用整理(入门)

sitemesh 使用整理(入门)

JSP、Sitemesh 和 Tiles 硬核——还有其他选择吗? [关闭]

配置使用sitemesh

KeyMob移动广告聚合平台:为应用选择最合适的广告