4

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

/imgsrv?imgid=12345

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

根据 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>
4

1 回答 1

8

我认为这就足够了:

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

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

于 2010-09-13T10:01:19.347 回答