SiteMesh:关于decorators.xml配置文件中路径设置的问题
在配置decorators.xml中的标签时发现子标签中装饰器页的page属性不能以“/”开头。
例如:
<decorators defaultdir="/WEB-INF/pages"> <decorator name="main" page="/decorators/main.jsp"> <pattern>/*</pattern> </decorator> <!--...--> </decorators>
会使系统出现如下异常:
java.lang.RuntimeException: javax.servlet.ServletException: File "/decorators/main.jsp" not found com.opensymphony.sitemesh.webapp.decorator.BaseWebAppDecorator.render(BaseWebAppDecorator.java:40) com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:84) org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
但对于其下的非装饰器页标签中的page属性却没有此限制(有没有“/”均可)。不知道是不是SiteMesh的Bug。为了方便起见,所有标签均不在路径前加“/”。
本文探讨了SiteMesh框架中decorators.xml配置文件的问题,特别是关于装饰器页面路径设置时使用“/”符号导致的异常情况,并提供了可行的解决方案。

被折叠的 条评论
为什么被折叠?



