intellij thymeleaf 命名空间 th 未绑定

intellij thymeleaf Namespace th is not bound

我正在使用 IntelliJ IDEA,我遇到了 thymeleaf 命名空间问题。我已经创建了员工表单,我将其包含在其他模板中,因此我没有指定名称空间,但是当我 运行 我的应用程序时它工作正常。有什么办法可以改变这种行为。我喜欢 auto-complete :-)

命名空间'th'未绑定示例:

在格式良好的文档(包括 htmlheadbody 等)中定义片段没有什么坏处。事实上,Thymeleaf Documentation 就是这样做的。

这样你就可以指定 thymeleaf 命名空间,这样你就可以自动完成,你也可以在浏览器中自己查看你的片段,这对原型制作很有用。

要启用自动完成和 IDE 对 Thymeleaf 的支持,请确保您已启用 Thymeleaf 插件。

File -> Other Settings -> Config Plugins -> 勾选 Thymeleaf

同时在根标签中添加命名空间

<html .... xmlns:th="http://www.thymeleaf.org">

此外,如果您正在使用 Spring,您应该使用以下内容:

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  <head>
     <title>Hello</title>
  </head>
  <body>
  </body>
</html>

区别在于DOCTYPE。 参见 Intellij Idea: Thymeleaf namespace unkown

如果您使用的是 Intellij IDEA,您还可以使用 JBLHtmlToThymeleaf 插件。使用此插件,您只需右键单击 HTML 文件并添加所需的命名空间。

此操作步骤:(上IDE)

File->Settings->Plugins->Marketplace 并搜索 JBLHtmlToThymeleaf

Install JBLHtmlToThymeleaf

安装完成后,右键单击所需的 html 文件和 select JBLHtmlToThymeleaf。

Right click the HTML file

该过程完成后,您会看到命名空间 xmlns: th = "http://www.thymeleaf.org" 已自动添加。

奖励:此外,如果您想在 HTML 文件中使用 Spring 安全性,请不要忘记添加 xmlns: sec = "http://www.thymeleaf.org/extras/spring-security".

xmlns:sec="http://www.thymeleaf.org" 添加到 html 标签中对我很有帮助。所以现在它看起来像下面这样:

<html xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org"
      lang="en">
<head>