为 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映射器的用法