IntelliJ中的Thymeleaf:无法解析变量

时间:2018-05-30 00:05:34

标签: java spring spring-mvc intellij-idea

Intellij无法识别HTML中的模型变量。如何解决模型变量。我对这个问题一无所知。

这是我的控制器

[('payout_value', 'sum')]

这是我的" index.html"

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

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

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

问题出在我的<html xmlns:th="http://www.thymeleaf.org" xmlns="http://www.w3.org/1999/html"> 我看到红色波浪线说&#34;无法解决&#34;消息&#34;可变...&#34;

4 个答案:

答案 0 :(得分:2)

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

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

我从来没有给过这样的提示,但在看完你的评论之后你发现这条摇摆不定的线条很烦人,我决定建议:

禁用提示。

configure inspections

disable expression variables validation

我觉得发布这个答案绝对野蛮,请原谅我

答案 1 :(得分:0)

项目结构(Ctrl + Alt + Shift + S)-> 模块->单击加号图标,然后添加一个 Web模块到项目中,请确保“部署说明” 为空,并在“ Web资源目录” 部分中确保您的 src文件夹设置在 // 上。

这对我有用

答案 2 :(得分:0)

对于IntelliJ的最新版本:

将光标置于变量上,按Alt-Enter,您将看到一个菜单选项,以“在注释注释中声明外部变量”。选择此选项后,您将获得一个注释模板,其光标位于键入变量数据类型的位置。

完成后,您将看到以下内容:

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

Alt-enter菜单在${#maps.isEmpty(productIds)}之类的表达式中似乎不起作用。在这种情况下,手动创建注释可能会使UI摆脱“未解决”的指示。

答案 3 :(得分:0)

这些红线可能很烦人,我刚刚删除了 www。来自我的百里香叶,它起作用了

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

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