来自taglib的grails访问控制器
是否可以从标记库中访问当前控制器实例?例如:来自taglib的grails访问控制器,grails,groovy,Grails,Groovy,是否可以从标记库中访问当前控制器实例?例如: class FooTagLib { static namespace = 'foo' def msg = { attrs, body -> // Can I get a reference to the current controller here? } } 之所以要这样做,是因为我将一些数据存储在控制器的属性中,并希望在TagLib中访问它。我意识到这可能听起来很奇怪,但请幽默我…
class FooTagLib {
static namespace = 'foo'
def msg = { attrs, body ->
// Can I get a reference to the current controller here?
}
}
之所以要这样做,是因为我将一些数据存储在控制器的属性中,并希望在TagLib中访问它。我意识到这可能听起来很奇怪,但请幽默我….试试这样的东西
def ctl = grailsApplication.getArtefactByLogicalPropertyName('Controller', 'whateverController')
在msg tagLib中:
grailsApplication.getArtefactByLogicalPropertyName('Controller', pageScope.controllerName)
像视图一样,您可以通过
controllerName
和actionName
访问当前控制器和操作。我无法硬编码控制器的名称(whateverController),因为我无法知道哪个控制器处理了当前请求啊,那么您就难倒我了。对不起,你能把它们作为参数传递给taglib吗?我相信您可以通过params.controller访问它。只要确保您的taglib需要传递给它的控制器实例。Fabien,为什么要使用pageScope.controllerName
而不是controllerName
?