【问题标题】:Readability of thymeleaf百里香的可读性
【发布时间】:2018-07-02 21:06:07
【问题描述】:

我习惯这样写模板:

<div class="person">
    ${name}
</div>

这对我来说似乎更具可读性,因为我可以看到标签本身之外的变量。目前在百里香,我需要做:

<div class="person" th:text="${name}" />

或者:

<div class="person" th:text="${name}">
    ${name} // this text will be replaced and doesn't matter
</div>

有没有办法像我在顶部那样输入变量?

【问题讨论】:

  • Thymeleaf 的重点是模板是有效且可呈现的 HTML,这使得 1) 样式、2) 验证、3) 格式化更容易。个人我认为 Thymlead 比混合多种不同的语言更具可读性。现在 - 问题 - “我认为”意味着这是基于意见的,所以又跑题了。
  • 如果您想这样,请使用 JSP 和标准标签库。此时您正在订购味道应该像鱼的牛肉。

标签: java spring thymeleaf


【解决方案1】:

当然,您可以为此使用expression inlining

<div class="person">
    [[${name}]]
</div>

在我链接的文档中,它确实讨论了使用表达式内联与自然模板。在大多数情况下,我个人更喜欢自然模板。

【讨论】:

  • 呃——太令人发指了。似乎是“两全其美”的定义。这适用于标准语法不够用的极少数情况 - 它绝对不是意味着是替代语法。
  • 如果您使用的是最新的 thymeleaf -- 3.0,它会自动执行。如果您使用的是 2.0,您可能必须将th:inline="text" 放入您的标签中......这更难看。
  • @David542 如果这让你开心使用 Freemarker。不要以这种方式滥用 Thymeleaf - 它会让人哭泣。
  • @David542 您可以在div 中添加一些文本,这就是重点!您创建的页面在未呈现的情况下查看时看起来应该如此。以&lt;div th:text="${name}" &gt;John Smith&lt;/div&gt; 为例。
  • @David542 -- 如果你想完全采用 thymeleaf 方式,它应该是这样的:&lt;div th:text="${name}"&gt;David542&lt;/div&gt;。这样,当您在浏览器中打开它(没有服务器)时,它看起来像是在工作(例如,看起来 ${name} 被替换为 David542)。当你通过解释百里香叶的服务器运行它时,David542 实际上被替换为${name}。然而,在实践中我总是写&lt;div th:text="${name}" /&gt;,只是因为它更简洁。
猜你喜欢
  • 2020-12-30
  • 2021-01-09
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 2015-03-15
  • 2017-04-05
  • 2018-02-03
相关资源
最近更新 更多