【问题标题】:HTML tags inside ThymeleafThymeleaf 中的 HTML 标签
【发布时间】:2016-05-30 08:01:48
【问题描述】:

我需要写这样的文字:<td th:text="${ticket.eventName} + '<br />' + ${ticket.ticketType}">Event Name</td> 但是Thymeleaf 因为<br /> 而返回错误。我该如何解决这个问题?

UPD:我尝试像:<td th:text="${ticket.eventName} + #{nextline} + ${ticket.ticketType}">Event Name</td> 这样工作。 nextline value = \n,但 #{nextline} 只工作一次。如果我重复粘贴它不起作用,为什么?

UPD2:我解决了这个问题。而'<br />' 需要粘贴'<br />'th:text 更改为th:utext

【问题讨论】:

  • <br />改成<br></br>here is an explanation
  • @Enigo 不幸的是它返回了同样的错误
  • 你试过th:utext而不是th:text吗?
  • @Enigo 是的,我有,但它也不起作用

标签: java html tags thymeleaf


【解决方案1】:

如果您想跳过转义字符,可以使用 th:block,这样会产生更清晰的结果。

th:block 只是一个允许模板开发人员使用的属性容器 指定他们想要的任何属性。 Thymeleaf 将执行 这些属性,然后简单地使块消失而没有 痕迹。 (http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#synthetic-thblock-tag)

所以在你的例子中:

<td>
    <th:block th:text="${ticket.eventName}"/>
    <br/>
    <th:block th:text="${ticket.ticketType}"/>
</td>

【讨论】:

    【解决方案2】:

    你可以使用 th:inline:

    <td th:inline="text">
        [[${ticket.eventName}]]
        <br/>
        [[${ticket.ticketType}]]
    </td>
    

    更多信息:http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#inlining

    【讨论】:

      【解决方案3】:

      已针对 Thymeleaf 3.0 进行测试:

      <td th:utext="|${ticket.eventName} &lt;br/&gt; ${ticket.ticketType}|">Event Name</td>
      

      注意th:utext tag

      其他选项:

      <td>[[${ticket.eventName}]] <br/> [[${ticket.ticketType}]]</td>
      

      Inlined output expressions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-12
        • 2015-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多