当前位置: 首页 > 知识库问答 >
问题:

使用片段时,Intellij无法正确识别Thymeleaf模型变量

阳凌
2023-03-14

我正在尝试使用Spring-Boot,并想使用Thymeleaf作为我的模板引擎。出于某种原因,当我想在我的thymeleaf片段中使用模型变量时,代码完成无法正常工作。例如,我像这样定义我的一个片段:

<div th:fragment="destThemeDiv(adminViewDTO)">

当我现在想在某个表达式中使用adminViewDTO时,它可以工作,但当我想访问adminViewDTO的成员并用红色下划线时,IntelliJ无法识别它们。例如,当我这样做时:

<th:block th:each="someObject: ${adminViewDTO.someObjects}">

然后一些对象被下划线读取,这似乎是显而易见的,因为IntelliJ无法推断类型参数本身,但是即使我在片段的顶部提供类型提示,它仍然无法正常工作:

<!--@thymesVar id="adminViewDTO" type="test.view.AdminViewDTO"-->

有什么方法能让这个正常工作吗?我没有找到其他人抱怨这个。

预先感谢

共有1个答案

狄玉书
2023-03-14

我想我已经明白了。当我将类型提示直接放在我使用表达式的块的上方,而不是将其插入页面顶部时,它就可以工作了。

像这样:

<!--@thymesVar id="adminViewDTO" type="test.view.AdminViewDTO"-->
<th:block th:each="someObject : ${adminViewDTO.someObjects}">
  <!--When using someObject in expression here, it will be recognized-->
</th:block>
 类似资料:
  • 生成PDF框 正如您所看到的,左侧的签名面板是无效的,但左侧的签名字段是存在的并且可以工作。 我用PDFTRON生成相同的PDF。这就是结果: 生成的PDF Tron 在这种情况下,左侧的签名面板正确显示签名字段的存在。 我想获得这第二个案例(正确),但我不明白为什么PDF框可以这样做。 多谢

  • 我使用JHipster以Gradle作为构建工具生成了应用程序。 当我创建实体时,我添加了过滤支持,这会生成JPA静态元模型。但是IntelliJ无法识别元模型。 我在IntelliJ上启用了注释处理器设置,但它似乎不起作用。 为了让IntelliJ识别JPA静态元模型,我必须更改哪些设置?

  • 我最近尝试导入一个现有的Gradle项目,使用启动窗口中的“Open project”选项和现有的build.Gradle文件自动设置该项目。 就在我这样做之后,IntelliJ中出现了一条错误消息,说: 看起来像这样,IntelliJ抱怨我没有将play框架添加到我的PATH变量中。尽管外壳的输出告诉了某事物。其他: 我还编写了一个简单的类来显示IntelliJ使用的PATH变量: 当我运行这个

  • 我有一个thymeleaf表单和Spring引导后端。我有一个model类,它的getters和setters名称有点不同。因此,当我要取那个模型并将它的字段作为表单输入字段时,Tymeleaf不能将它们识别为字段。 窗体适用于区域字段。但对Amt字段不起作用。如果我将isAmt()get方法更改为getIsAmt(),也许我可以修复这个问题。但是我不能更改模态类的任何方法名,因为这个类已经编译好

  • 我正在创建Spring boot web Application。出于模板目的,我使用了thymeleaf。我正在创建单独的html页面片段,并从这些片段创建两个不同的布局。但是,当我连接内容页面时,我没有得到正确的输出。 请检查代码片段/ 视图解析器 目录结构 应用布局。html 页脚片段footer.html 使用此方法创建不同的片段。 主方法类aka startup 欢迎html 现在,当我

  • 我有一个具有此结构的 xsd 文件: 所以,我已经用jaxb2生成了java类: Accesso 类和其他类也是如此。这是我尝试反序列化的xml文件的一个例子: 但是当我要反序列化某个xml文件时,我得到了这个错误: com.fasterxml.jackson.databind.exc.未识别的字段Accesso(类com.xx.yy.FlsProSoc),未标记为不可忽略(一个已知的属性:内容]