bho*_*oll 5 grails grails-controller grails-2.3
通常在Spring Source Tool Suite IDE或Eclipse Maven项目中,如果我想看看框架/库方法在幕后做什么,我可以按住Ctrl键并单击方法名称,它将带我到源代码.我知道很多Grails方法是在运行时动态添加的,因此IDE并不总是能够知道如何获取它们.否则,我可以在Google,Github或API文档中搜索该类.使用Grails核心源来更好地理解框架的最佳方法是什么?
例如,我想看看控制器中的响应方法是什么样的,以及当索引方法如下所示时,它如何将一个名为"clubInstanceList"的参数返回到我的club/index gsp:
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond clubService.list(params), model:[clubInstanceCount: clubService.count()]
}
Run Code Online (Sandbox Code Playgroud)
ctrl + click在IDE中不起作用,因为此方法是在运行时添加的.我在github上搜索了Grails核心源代码,但是不知道控制器上这种响应方法的包结构.
这可能不是一个简单的搜索,因为一些代码是在编译期间生成的,或者功能可以在运行时添加到类中.这是您在使用动态语言时支付的价格.
当我需要找到一些不那么明显的功能时,我首先尝试找到负责它的内部插件.在STS我做ctrl
shift
T
和搜索*GrailsPlugin*
.您可以doWithDynamicMethods
在插件的闭包中检查运行时更改.
例如,Grails具有ControllersGrailsPlugin
为控制器类添加数据绑定功能的类.
由于我没有respond
在此插件描述符中找到与该方法相关的任何内容,因此可能是通过编译实现的.您可以在"搜索"框中使用ctrl
H
并执行Java搜索method
.在scope
标记workspace
和STS中也会查找Grails类.
所以答案就是你的问题是ControllersRestApi
班级,我发现它使用"搜索方法"的方法.
归档时间: |
|
查看次数: |
240 次 |
最近记录: |