繁体   English   中英

IntelliJ 中的 Thymeleaf:无法解析变量

[英]Thymeleaf in IntelliJ: cannot resolve variables

Intellij Not Recognizing Model Variables in HTML。如何解析 model 变量。 我对这个问题一无所知。

这是我的 Controller

@Controller 
public void someController {
  @RequestMapping("/")
  public String someMethod() {
    model.addAttribute("message", "message");
    return "index";
}

这是我的“index.html”

<p th:text="${message}"> </p>

当然,在我的 html 标签中,我使用的是 thymeleaf:

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

问题出在我的th:text="${message}"我看到红色波浪线说“无法解析“消息”变量...”

只要我一直在使用 Thymeleaf,我就一直忽略这个问题。 尽管它显示了波浪线,但在您运行应用程序时它应该仍然可以工作。

IntelliJ 几乎必须在后台编译代码才能自动(并且准确地,因为您可以有多个使用相同模板的方法)解析变量。

我从来没有给过这样的提示,但在阅读了你的评论后,你只是觉得摆动线很烦人,我决定无论如何建议它:

禁用提示。

配置检查

禁用表达式变量验证

我对发布这个答案感到非常野蛮,请原谅我

对于 IntelliJ 的最新版本:

将光标放在变量上,按 Alt-Enter,您应该会看到一个菜单选项“在注释注释中声明外部变量”。 当您选择此选项时,您将获得一个注释模板,其中光标定位为键入变量的数据类型。

完成后,您将看到如下所示的内容:

    <!--/*@thymesVar id="productIds" type="java.util.Map"*/-->
    <div data-th-each="p : ${productIds}">

Alt-enter 菜单似乎在${#maps.isEmpty(productIds)}等表达式中${#maps.isEmpty(productIds)} 在这种情况下,手动创建评论可能会使 UI 摆脱“未解决”指示符。

在遇到同样的问题时偶然发现了这一点。 在我的例子中,这是由于@SpringBootApplication class 与模板和 controller 不在同一个 Maven 模块中引起的。在pom.xml中包含应用程序模块和<scope>provided</scope>为我解决了这个问题。

我认为@TwiN 是对的。 IntelliJ 确实必须编译整个东西,因为它找不到应用程序,所以它不知道如何进行组件查找。

这些红色内衬可能很烦人,我刚刚删除了 www。 从我的百里香叶,它起作用了

在您的 .html thymeleaf 文件中,将第 1 行替换为第 2 行
第 1 行: <html xmlns:th="http://www.thymeleaf.org">

第 2 行: <html xmlns:th="http://thymeleaf.org">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM