我已经咨询过Sitemesh does not decorate returned views,但这篇文章对我不起作用。
我希望sitemesh只装饰.jsp页面,但是当控制器返回一个视图时,它不会被修饰。
这是我web.xml的一部分
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>这是我的decorators.xml
<?xml version="1.0" encoding="UTF-8"?>
<decorators>
<decorator name="basicLayout" page="/WEB-INF/decorators/base_layout.jsp">
<pattern>*.jsp</pattern>
</decorator>
</decorators>我使用InternalResourceViewResolver将我的视图从逻辑名解析为实际路径:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />这位是我的主计长
@Controller
public class UserController {
@RequestMapping("/user/registration")
public String registrationForm() {
return "user/registration";
}
}我的jsp页面是/WEB-INF/jsp/user/registration.jsp。在我请求user/registration之后,jsp页面就没有任何修饰。
发布于 2014-04-16 04:53:58
将模式更改为
<pattern>/*</pattern>模式中的路径再次匹配--请求路径,而不是由RequestDispatcher#forward()使用视图名执行的内部InternalResourceViewResolver。
但是,您可以使SiteMeshFilter只在forward请求上工作,使用
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>https://stackoverflow.com/questions/23098555
复制相似问题