根据文档,Grails控制器只是一个类,"Controller"附加到名称并保存在其中grails-app/controllers/.这类中最简单的是:
package some.package
class FooController {
def index = {}
}
Run Code Online (Sandbox Code Playgroud)
运行Grails应用程序时,此控制器将继承一些标准方法,如getParams和getSession.从附带的屏幕截图中我可以看到这些是通过添加的groovy.lang.ExpandoMetaClass.我没看到的是这是怎么发生的.控制器不实现任何接口或扩展任何抽象.这些方法来自哪里?

从Grails 2.0开始,一种新的方法适用于将动态方法添加到控制器伪像中.您可以逐步访问它们以查看如何将这些属性添加到控制器: -
现在,在Grails 2.0之前,我们采用了一种不同的方法来为控制器添加动态属性.这样,metaClass属性在运行时被添加到控制器,发现效率较低.每个动态属性都由它自己的类(即:GetParamsDynamicProperty,GetSessionDynamicProperty)表示,它现在没有被使用.
所以,你现在需要看看在那些动态方法的对象树是什么这其中CachedMethods控制器可用.希望有所帮助.如果你寻求更多,我会很高兴添加更多.:-)
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |