2011-08-08 86 views
5

标题可能会引起误解。我真正想要的是知道控制器内封闭的名称。但是Groovy中的闭包总是匿名的,所以没有闭包本身的名字。但是,闭包被分配给一个变量,我想知道是否可以得到该变量的名称。也许一个例子会有所帮助。在一个Grails控制器可以想象我有以下几点:在Groovy中,有没有办法知道持有闭包的变量的名称?

def get_data = { 
     Map results = [ 'errorCode' = -1, 'method' : 'get_data' ] 
     ... 
     render results as JSON 
    } 

在地图称为结果有所谓的“方法”,我想分配给这个封闭的名称(或变量保持关闭更精确的元素)。这可能吗?这里的想法是我想概括结果图,并想自动填充名为'方法'的元素。本能地感觉这应该是可能的,但我还没有发现任何类似的用例来说明如何。任何帮助非常感谢。

回答

9

我不认为你可以在一般情况下获得变量的名称。这只是一个参考,关闭可以分配给其中的很多人。

这是非常简单的,但是,要在控制器代码当前操作的名称:

def get_data = {  
    def results = ['method': actionName] 
} 

documentation

相关问题