![](/img/trans.png)
[英]Spring boot + thymeleaf in IntelliJ: cannot resolve vars
[英]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.