【问题标题】:Can these IntelliJ warnings about my Thymeleaf template be avoided?可以避免这些关于我的 Thymeleaf 模板的 IntelliJ 警告吗?
【发布时间】:2019-02-05 00:51:38
【问题描述】:

我有一个直接的 Thymeleaf 模板,可以产生所需的输出。但是 IntelliJ 对模板的分析报告了两个不完全正确的警告(尽管我可以理解为什么会生成它们)。我想知道是否可以通过以不同方式构造模板或向 IntelliJ 提供一些提示来防止警告。

这是我模板中的相关 sn-p。本质上,我正在遍历根据group 属性分组的对象列表。对于每个组,我希望在该组中的对象之前插入一个标题和无序列表标签,然后附加一个结束标签。开始和结束标签没有明确绑定在一起的事实导致出现两个警告(由代码中的 cmets (1) 和 (2) 表示)。

<!--/*@thymesVar id="issues" type="java.util.List<com.example.Issue>"*/-->
<th:block th:each="issue,i : ${issues}">
  <th:block th:if="${i.first || !issue.uniqueName.equals(issues.get(i.index - 1).uniqueName)}">
    <h3 th:text="${issue.group.name}"></h3>
    <ul> <!-- (1) Element ul is not closed -->
  </th:block>
  <li class="warning" th:text="${issue.name + ': ' + issue.message}"></li>
  <th:block th:if="${i.last || !issue.uniqueName.equals(issues.get(i.index + 1).uniqueName)}">
    </ul>  <!-- (2) Closing tag matches nothing -->
  </th:block>
</th:block>

这里有一些示例输出,它清楚地表明生成的 HTML 确实是正确的,即。 ul 标签已正确打开和关闭。

<h3>Group 1</h3>
<ul>
   <li class="warning">Sample 1: message 1</li>
   <li class="warning">Sample 2: message 2</li>
</ul>
<h3>Group 2</h3>
<ul>
   <li class="warning">Lorem ipsum: dolor sit amet</li>
   <li class="warning">Lorem ipsum: dolor sit amet</li>
</ul>

那么有没有办法避免这些 IntelliJ 警告关于一个元素没有被关闭并且一个结束标签不匹配?

【问题讨论】:

  • (IDEA等JetBrains IDE通用)Alt+Enter在警告源上,悬停在指定警告上,是否有“禁用此警告”选项?
  • 如果你想禁止警告:jetbrains.com/help/idea/suppressing-inspections.html。如果您认为这是一个应该修复的错误,请通过youtrack.jetbrains.com/issues/IDEA 报告。
  • IntelliJ 建议的解决方案(通过 Alt Enter)只是删除标签。我无法找到抑制这些警告的方法。
  • 除非禁用 IDE 的警告,否则无法执行此操作。 IntelliJ 只是将其视为当前上下文中未闭合的标记。
  • 那是您用来获得该输出的确切 HTML 吗?我在&lt;h3&gt; 标签中看不到连字符。

标签: java intellij-idea thymeleaf


【解决方案1】:

目前,IntellijIDEA 允许将th:block 添加到其自定义 HTML 标记列表中。这只是部分令人满意,因为如果您在 Thymeleaf 之外使用它,它不会将其标记为错误。

当然,这是一个极端情况,但这是我经常遇到的极端情况,因为一个域可能使用 Thymeleaf,另一个 Freemarker,然后还有一些 PHP 项目正在提供的那些讨厌的 Twig 模板。它增加了我出于习惯使用错误语法的风险。 ?

【讨论】:

    猜你喜欢
    • 2016-06-23
    • 2014-12-04
    • 1970-01-01
    • 2011-05-05
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    相关资源
    最近更新 更多