2014-03-06 30 views
2

是否可以扩展共享视图百里香用百里香扩展视图

我看到这是可能的使用framents但不是我想要的。我想要的东西类似于.NET MVC,类似于@RenderBody()和另一个通过包含共享视图来扩展共享视图的视图。

回答

7

您可以使用Thymeleaf Layout Dialect来扩展视图。

布局页

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> 
    ... 
    <body layout:fragment="body"> 
     ... 
    </body> 
</html> 

内容页

在你的内容页面,你指的是使用layout:decorator属性布局(装饰)页面。

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" 
    layout:decorator="layout.html"> 
    ... 
    <body layout:fragment="body"> 
     <p>Actual page content</p> 
    </body> 
</html> 

在一个页面中可能有多个片段。

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> 
    ... 
    <body> 
     <div layout:fragment="content"></div> 
     <footer layout:fragment="footer"></footer> 
    </body> 
</html> 
+0

我会用Rythm代替Thymeleaf。它速度更快,功能更多。 https://github.com/greenlaw110/spring-rythm –

+3

Rythm是一个通用模板引擎,而Thymeleaf是一个XML/XHTML/HTML5模板引擎。 Rythm可能会更快,但渲染视图的成本现在可以忽略不计。 Thymeleaf将为您提供更清洁的模板和模板验证,从而提高生产力。但是,无论漂浮你的船:)。 –

+0

我明白了。顺便说一句Rythm是从我的一位同事开发而来的。 –