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

发布于 2024-12-27 15:44:58 字数 695 浏览 2 评论 0原文

*编辑* 我不知道 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你好,陌生人 2025-01-03 15:44:58

尝试删除“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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文