我可以让Intellij Idea 10.5在共享的GSP模板中完成模型变量的代码吗



*编辑*我不知道Idea的"添加动态属性"功能,这正是我想要的。感谢Sergey

我喜欢Intelli-J如何识别从公共控制器放入模型中的变量类型,并允许在GSP中自动完成。

例如,如果我有一个控制器方法

def mymethod = {          
  MyDomain myDomainInstance = 
.... logic ...
[myDomainInstance: myDomainInstance]

}

在我对应的mymethod.gsp中,Intelli-J将从MyDomain bean自动完成${myDomainInstance}上的方法。

然而,考虑一个使用相同域类的共享模板,该模板可以通过呈现

<g:render template="/shared/somesharedtemplate" model="['myDomainInstance': myDomainInstance]">

当我编辑/shared/_somesharedtemplate.gsp时,${myDomainInstance}不会被识别为Intelli-J所知道的东西(但当Grails运行时,它当然可以正常工作)。是否有任何声明或我可以在普惠制中添加的任何内容来暗示它?

尝试删除'model'属性值中变量名称周围的引号。IDEA不识别引号中定义的模型变量。这是一个bug:http://youtrack.jetbrains.net/issue/IDEA-80041.

您还可以为页面_somesharedtemplate.gsp添加动态属性"myDomainInstance"。在无法识别的引用上按Alt+Enter,然后选择"添加动态属性"myDomainInstance"意图。

最新更新