如何找到对象在 GSP 中声明的位置

How to find where is an object declare in GSP

在 gsp 文件中有如下行

<g:each in="${tools}" var="tool" status="counter">

当我调试时它显示如下值

它正在使用 Grails 框架。我可以知道如何找到这个 ${tools} 在哪里声明并被调用到这个 GSP 吗?

Grails 使用约定优于配置。所以为了追溯tool设置的位置,你必须记下gsp文件的名称和它所在的目录。

理想情况下,如果 gsp 名称是 bar.gsp 并且位于 grails-app/views 下的 foo 目录下,那么惯例是 [=15] 下可能有一个 FooController.groovy =] 将有一个名为 bar() 的操作。很可能模型是在 bar 操作中使用变量 tools 设置的。

这个练习将是一个很好的起点。

@dmahapatro 建议的是最好的方法,但如果您仍然无法找到 tools 变量,只需在您正在使用的 IDE 中进行项目级搜索并找到 [= =10=].

您可以应用以下过滤器来加快搜索速度:

  1. 首先,只在目录grails-app/controllers
  2. 中搜索
  3. 然后在目录中搜索grails-app/directives
  4. 尝试搜索以下单词:toolstools:tools :,因为它将呈现为地图。