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

Grails 我能让Intellij Idea 10.5在共享GSP模板中完成模型变量的代码吗?,grails,intellij-idea,code-completion,Grails,Intellij Idea,Code Completion,*编辑*我不知道Idea的“添加动态属性”功能,这正是我想要的。谢谢,谢尔盖 我喜欢Intelli-J如何识别从通用控制器输入到模型中的变量类型,并允许GSP中的自动完成 例如,如果我有一个控制器方法 def mymethod = { MyDomain myDomainInstance = .... logic ... [myDomainInstance: myDomainInstance] } 在我对应的mymethod.gsp中,Intelli-J将从MyDoma

*编辑*我不知道Idea的“添加动态属性”功能,这正是我想要的。谢谢,谢尔盖

我喜欢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运行时,当然可以正常工作)。是否有任何声明或任何我可以添加到GSP的内容来提示它?

尝试删除“model”属性值中变量名周围的引号。IDEA不识别引号中定义的模型变量。这是一个错误:


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

在常规groovy代码中,我有时会键入有助于intellisense的对象。所以,可以尝试这样的方法:然后引用实例。我不会将其归类为好的一般建议,但它可能会帮助您获得智能感知。第一个建议没有帮助(它没有帮助是有意义的,因为如果您使用不同类型的变量从多个地方调用共享模板会怎么样?这在编程上很愚蠢,但合法,Idea怎么知道?),但“添加动态属性”正是我想要的。