我可以使用Intellij Idea 10.5在共享GSP模板中对模型变量进行代码完成吗?

时间:2012-01-17 19:44:35

标签: grails intellij-idea code-completion

* 编辑 * 我不知道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中的提示?

1 个答案:

答案 0 :(得分:3)

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

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