我可以在GSP之外使用grails标签吗?

时间:2009-07-28 03:27:46

标签: grails groovy tags closures

例如,我可以把

 <g:createLink controller="user" action="show" /> 

在.gsp文件中,它可以很好地工作。

但我也想在.groovy文件中使用相同的句柄createLink,该文件不是grails视图的一部分

3 个答案:

答案 0 :(得分:20)

您可以使用Grails控制器中的taglib方法,例如:

def userShow = g.createLink(controller:"user", action:"show")

对于内置标记库(或g命名空间中的那些),可以在方法调用中省略名称空间前缀。

答案 1 :(得分:14)

将grailsApplication注入您的服务/过滤器。

def grailsApplication

获取Spring bean。

def g = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
def userShow = g.createLink(controller: 'user', action: 'show')

答案 2 :(得分:7)

对于非托管类,您可以使用以下代码引用g taglib:

def g = ApplicationHolder.application.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')