我用一个 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>
最佳答案
我认为这就足够了:
<decorators defaultdir="/WEB-INF/view/decorators">
<excludes>
<pattern>/imgsrv</pattern>
</excludes>
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
您正在直接映射到已知的 servlet 路径。您不需要通配符来处理参数(如 ?imgid=12345
中所示)。
关于java - 为 Sitemesh 选择合适的 url 模式以从其装饰器中排除我的 servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3699330/