2011-03-28 93 views
2

是否可以從TagLib中訪問當前控制器實例?例如:來自taglib的grails訪問控制器

class FooTagLib { 
    static namespace = 'foo' 

    def msg = { attrs, body ->   
     // Can I get a reference to the current controller here? 
    } 
} 

我想這樣做,是因爲我在控制器中存儲的屬性一些數據,並希望在標籤庫中訪問它。我知道這聽起來很奇怪,但只是幽默我....

回答

0

嘗試這樣的事情...

def ctl = grailsApplication.getArtefactByLogicalPropertyName('Controller', 'whateverController') 
+0

執行操作我無法硬編碼控制器的名稱(whateverController),因爲我無法知道哪個控制器處理程序編輯當前請求 – 2011-03-28 17:25:52

+0

啊,那麼你已經難倒我了。抱歉。 – Gregg 2011-03-28 17:33:57

+0

你能否將它們作爲params傳遞給taglib?我相信你可以通過params.controller訪問它。只要確保你taglib需要傳遞給它的控制器實例。 – Gregg 2011-03-28 17:35:18

5

內,您的味精的taglib:

grailsApplication.getArtefactByLogicalPropertyName('Controller', pageScope.controllerName) 

意見一樣,你有訪問當前控制器並通過controllerNameactionNameactionName

+0

Fabien,爲什麼使用'pageScope.controllerName'而不是'controllerName'? – 2015-05-18 16:04:21