我可以使用 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 运行时工作正常) )。我可以在普惠制中添加任何声明或任何内容来暗示吗?
*Edit* I didn't know about 'Add Dynamic Property' feature of Idea, that is exactly what I wanted. Thanks Sergey
I love the fact how Intelli-J recognizes the type of variables put into the model from a common controller and allows autocomplete right in the GSP.
For example if I have a controller method
def mymethod = {
MyDomain myDomainInstance =
.... logic ...
[myDomainInstance: myDomainInstance]
}
In my corresponding mymethod.gsp, Intelli-J will autocomplete methods on ${myDomainInstance} from the MyDomain bean.
However consider a shared template that uses the same domain class and could be rendered via
<g:render template="/shared/somesharedtemplate" model="['myDomainInstance': myDomainInstance]">
When I am editing /shared/_somesharedtemplate.gsp, ${myDomainInstance} is not recognized as something Intelli-J knows about (but of course works fine when Grails runs). Is there any declaration or anything I can add to the GSP to hint it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试删除“model”属性值中变量名称周围的引号。 IDEA 无法识别引号内定义的模型变量。这是一个错误:http://youtrack.jetbrains.net/issue/IDEA-80041 。
您还可以为页面 _somesharedtemplate.gsp 添加动态属性“myDomainInstance”。在无法识别的引用上按 Alt+Enter,然后选择“添加动态属性‘myDomainInstance’”意图。
Try to remove quotes around variable name in value of 'model' attribute. IDEA does not recognize model variable defined inside quotes. It's a bug: http://youtrack.jetbrains.net/issue/IDEA-80041.
Also you can add a dynamic property 'myDomainInstance' for page _somesharedtemplate.gsp . Press Alt+Enter on unrecognized reference then select 'Add Dynamic Property 'myDomainInstance'' intention.