IntelliJ IDEA 中针对 Twirl 模板中隐式变量的代码帮助

Code assistance in IntelliJ IDEA for implicit variables in Twirl Template

我正在 Java 使用 Play!框架和 Twirl 模板引擎,使用 IntelliJ IDEA。在模板中有许多可用的隐式变量(flash、session、requestHeader)。我可以成功引用这些变量中的任何一个,我的应用程序将按预期进行编译和 运行。然而,由于这些变量没有被显式声明,IDEA 会显示错误(例如 Cannot resolve symbol flash)并且不提供任何代码帮助。虽然这不是一个大问题,但我想尽可能解决这个问题。

我搜索了很多解决方案,JetBrains blog 有一个关于如何对 Velocity 模板执行此操作的 post,如果有人可以帮助我对 Twirl 模板执行相同的操作我将不胜感激!

杰克逊

我找到了解决这个问题的方法,就是在代码中引用完全限定名,即。访问 flash 变量使用

@play.mvc.Http.Context.Implicit.flash

这个也可以在模板顶部导入,代码中直接引用@flash就可以了

这应该不是必需的-玩吧!知道这些变量而无需显式导入它们,这只是为了 IDEA。奇怪的是,我发现在通过 IDEA 创建新项目后,它确实提供了预期的行为——我可以简单地使用 @flash 而无需导入,IDEA 将按预期工作。但是,一旦我关闭并重新打开项目,就会出现同样的问题。

目前这是我找到的最佳解决方案,尽管我已经联系了 IntelliJ 支持,如果他们提供更好的解决方案,我会相应地更新我的答案。