【发布时间】:2014-05-30 16:23:58
【问题描述】:
我已咨询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页面没有任何装饰。
【问题讨论】:
-
你的
sitemesh.xml文件呢? -
@SotiriosDelimanolis,我没有
sitemesh.xml -
您是否加入了
decorators.xml? -
@Alex,是的。如果页面没有作为视图返回,则可以对其进行装饰。
标签: spring-mvc sitemesh