用Thymeleaf扩展视图

时间:2014-03-06 00:36:55

标签: spring spring-mvc razor thymeleaf

是否可以使用 thymeleaf 扩展共享视图?

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

1 个答案:

答案 0 :(得分:8)

您可以使用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>