【问题标题】:Extend A View With Thymeleaf使用 Thymeleaf 扩展视图
【发布时间】:2014-03-06 00:36:55
【问题描述】:

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

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

【问题讨论】:

标签: spring spring-mvc razor thymeleaf


【解决方案1】:

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

【讨论】:

  • 我将使用 Rythm 代替 Thymeleaf。它速度更快,功能更多。 github.com/greenlaw110/spring-rythm
  • Rythm 是通用模板引擎,而 Thymeleaf 是 XML/XHTML/HTML5 模板引擎。节奏可能更快,但现在渲染视图的成本可以忽略不计。 Thymeleaf 将为您提供更简洁的模板和模板验证,从而提高生产力。但不管你的船是什么:)。
  • 我明白了。顺便说一句,Rythm 是由我的一位实际同事开发的。
  • 太棒了!布局方言正是我所需要的。我很高兴我不需要使用 Tiles。
猜你喜欢
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2018-09-15
  • 2011-11-01
相关资源
最近更新 更多