用Thymeleaf扩展视图


问题内容

有可能扩大与 百里香 的共同看法吗?

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


问题答案:

您可以使用Thymeleaf布局方言来扩展视图。

版面页面

<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>