从IntelliJ 2023.2开始,here问题已经5年没有解决了,我只找到了this问题,但是它使用了一个(旧的?)本身有问题的答案(eg)。
@Controller
@RequestMapping("/events")
class EventsController(val eventsService: EventService) {
@RequestMapping
fun getEventsView(model: Model): String {
val events: List<Event> = this.blogService.findAll()
model.addAttribute("events", events)
model.addAttribute("bodyContent", "pages/events")
return "master-template"
}
}
在master-template.html
中有一个<th:block th:replace="${bodyContent}"></th:block>
。即使用pages/events
手工替换${bodyContent}
,问题仍然存在。
对于上面的代码,IntelliJ将自动完成master-template.html
文件中的events
和bodyContent
,但不会自动完成pages/events.html
文件。
然而,IntelliJ提供:x1c 0d1x当你尝试使用变量,但它仍然不工作(无关的IntelliJ问题?,因为它正确地放置了@thymesVar注解)。
我提出这个问题是想问,是否有一种正确的方法可以让自动完成功能从文件外部进入片段文件?
1条答案
按热度按时间ubbxdtey1#
虽然不是一个很好的解决方案,但将这一行添加到控制器是一个有效且简短的解决方案:
if(false) return "pages/events"
另外,当我用
<th:block xmlns:th="http://www.thymeleaf.org"><\th:block>
Package 整个片段文件时,的问题就消失了(但是当你不使用显式的th:fragment时,这是不必要的,相反,片段是整个文件,顺序有多个html标记。另一个原因是,如果包含
xmlns
的标记不在文件中的第一个,则会变得非常混乱)。似乎所有与thymeleaf相关的东西都可以在没有xmlns
的情况下工作,除了@thymesVar
注解。