2

我正在使用 Play 用 Ja​​va 构建一个 Web 应用程序!框架和 Twirl 模板引擎,使用 IntelliJ IDEA。在模板中有许多可用的隐式变量(flash、session、requestHeader)。我可以成功引用这些变量中的任何一个,并且我的应用程序将按预期编译和运行。但是,由于这些变量没有明确声明,IDEA 会显示错误(例如,无法解析符号闪存)并且不提供任何代码帮助。虽然这不是一个大问题,但如果可能的话,我想解决这个问题。

我已经搜索了很多解决方案,JetBrains 博客有一篇关于如何为 Velocity 模板执行此操作的帖子,如果有人可以帮助我为 Twirl 模板做同样的事情,我将非常感激!

杰克逊

4

1 回答 1

0

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

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

这也可以在模板的顶部导入,然后您可以在代码中简单地引用@flash。

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

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

于 2015-08-20T02:13:11.933 回答