2012-07-30 54 views
2

我试图设置一个简单的sitemesh装饰页面,但现在正在运行到墙上。Sitemesh不装饰返回的视图

首先,我的设置:

#decorators.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<decorators> 
    <decorator name="basicLayout" page="/WEB-INF/views/layout.jsp"> 
     <pattern>*</pattern> 
    </decorator> 
</decorators> 

这里没有什么特别

#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>*.jsp</url-pattern> 
</filter-mapping> 

没什么特别有

当我调用应用程序的索引,它被装饰。 当我点击一个链接调用返回视图的控制器时,返回的视图不会被装饰。实际上,这只适用于目前的欢迎文件。 我尝试了不同的修饰器模式,结果是相同的或除了:D

有人可以给我一个提示呢?

谢谢!

+1

呃,好吧,我发现我自己...... *的.jsp< - 坏了,春天处理该... /*<! - 好,sitemesh知道如何处理那个 – ximarin 2012-07-30 15:43:49

+1

+5 !!。解决了我的项目中的问题。谢谢@ ximarin – Bhat 2016-10-12 07:12:39

回答

0

对于sitemesh视图的装饰,它认为“main”模板是默认的。所以如果你没有在你的JSP中指定任何模板(要被修饰),那么它将decorator.xml中的定义定义为main。

如果你打算在应用程序中只有一个模板(很少机会),然后将装饰器名称从basicLayout重命名为main。

如果没有,那么你可以在JSP中使用指定要使用哪个装饰器。