SiteMesh3 支持两种主要的配置: XML 和 Java,甚至两者可以共用。
XML  | Java  | 
  | 
  | 
基于xml的配置
配置文件需放置于/WEB-INF/sitemesh3.xml ,如
 
Xml代码
 
1. <sitemesh>
2. <mapping path="/*" decorator="/decorator.html"/>
3. <mapping path="/admin/*" decorator="/admin-decorator.html"/>
4. </sitemesh>
基于java的配置
必须编写一个过滤器,继承org.sitemesh.config.ConfigurableSiteMeshFilter 且重载applyCustomConfiguration方法,如
 
Java代码
1. public class MySiteMeshFilter extends
2. @Override
3. protected void
4. "/*", "/decorator.html")  
5. "/admin/*", "/admin/decorator.html");  
6.   }  
7. } 
如果xml和java两个配置方法共用,sitemesh3在调用applyCustomConfiguration()方法前会先加载xml的配置。
配置渲染
- 给所有路径配置一个默认的渲染
 - 给特殊的路径配置一个渲染
 - 给某个路径配置多个渲染,一个渲染依赖于前面的渲染
 - 排除某个路径
 
xml
 
Xml代码
 
 
1. <sitemesh>
2.   
3. <!-- 配置默认的渲染器. 将应用于所有路径. -->
4. <mapping decorator="/default-decorator.html"/>
5.   
6. <!-- 配置特定路径的渲染器. -->
7. <mapping path="/admin/*" decorator="/another-decorator.html"/>
8. <mapping path="/*.special.jsp" decorator="/special-decorator.html"/>
9.   
10. <!-- 配置多个渲染器. -->
11. <mapping>
12. <path>/articles/*</path>
13. <decorator>/decorators/article.html</decorator>
14. <decorator>/decorators/two-page-layout.html</decorator>
15. <decorator>/decorators/common.html</decorator>
16. </mapping>
17.   
18. <!-- 不被渲染的路径. -->
19. <mapping path="/javadoc/*" exclue="true"/>
20. <mapping path="/brochures/*" exclue="true"/>
21.   
22. </sitemesh> 
java
 
Java代码
 
 
1. public class MySiteMeshFilter extends
2. @Override
3. protected void
4. // 配置默认的渲染器. 将应用于所有路径.
5. "/*", "/default-decorator.html")  
6. // 配置特定路径的渲染器.
7. "/admin/*", "/another-decorator.html")  
8. "/*.special.jsp", "/special-decorator.html")  
9. // 配置多个渲染器.
10. "/articles/*", "/decorators/article.html",   
11. "/decoratos/two-page-layout.html",   
12. "/decorators/common.html")  
13. // 不被渲染的路径.
14. "/javadoc/*")  
15. "/brochures/*");  
16.   }  
17. } 
对于大多数情况,上面的配置就足够使用了。还有更高级的应用,如配置MIME类型,在页面里嵌入tag标签等。










