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

caf*_*afe 4 java regex servlets spring-mvc sitemesh

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

/imgsrv?imgid=12345
Run Code Online (Sandbox Code Playgroud)

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

根据Sitemesh文档,您可以排除某些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>
Run Code Online (Sandbox Code Playgroud)

Tom*_*ros 8

我认为这就足够了:

<decorators defaultdir="/WEB-INF/view/decorators">
    <excludes>
        <pattern>/imgsrv</pattern>
    </excludes>
    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>
</decorators>
Run Code Online (Sandbox Code Playgroud)

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