例如,我可以把
<g:createLink controller="user" action="show" />
在.gsp文件中,它可以很好地工作。
但我也想在.groovy文件中使用相同的句柄createLink
,该文件不是grails视图的一部分
答案 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')