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

时间:2010-09-13 09:52:37

标签: java regex servlets spring-mvc sitemesh

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

/imgsrv?imgid=12345

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

According to the Sitemesh docs,您可以排除某些网址没有应用装饰器,但语法对我来说并不清楚。

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

<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 个答案:

答案 0 :(得分: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)。