【发布时间】: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 吗?我在
<h3>标签中看不到连字符。
标签: java intellij-idea thymeleaf