Intellij Idea IntelliJ不自动完成(Spring)Thymeleaf在碎片文件

tuwxkamq  于 2023-10-15  发布在  Spring
关注(0)|答案(1)|浏览(141)

从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文件中的eventsbodyContent,但不会自动完成pages/events.html文件。
然而,IntelliJ提供:x1c 0d1x当你尝试使用变量,但它仍然不工作(无关的IntelliJ问题?,因为它正确地放置了@thymesVar注解)。
我提出这个问题是想问,是否有一种正确的方法可以让自动完成功能从文件外部进入片段文件?

ubbxdtey

ubbxdtey1#

虽然不是一个很好的解决方案,但将这一行添加到控制器是一个有效且简短的解决方案:
if(false) return "pages/events"
另外,当我用<th:block xmlns:th="http://www.thymeleaf.org"><\th:block> Package 整个片段文件时,

的问题就消失了(但是当你不使用显式的th:fragment时,这是不必要的,相反,片段是整个文件,顺序有多个html标记。另一个原因是,如果包含xmlns的标记不在文件中的第一个,则会变得非常混乱)。似乎所有与thymeleaf相关的东西都可以在没有xmlns的情况下工作,除了@thymesVar注解。

相关问题