例如,我可以把我可以在GSP之外使用grails標籤嗎?
<g:createLink controller="user" action="show" />
一個.gsp文件中,它會很好地工作。
而且我想使用相同的閉合createLink
一個.groovy作爲文件,該文件是不是Grails的意見
例如,我可以把我可以在GSP之外使用grails標籤嗎?
<g:createLink controller="user" action="show" />
一個.gsp文件中,它會很好地工作。
而且我想使用相同的閉合createLink
一個.groovy作爲文件,該文件是不是Grails的意見
您可以使用從Grails的控制器標籤庫方法的一部分內,例如:
def userShow = g.createLink(controller:"user", action:"show")
對於內置標記庫(或g命名空間中的那些標記庫),可以省略方法調用中的命名空間前綴。
將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')
對於非託管類,您可以參考g
的taglib有:
def g = ApplicationHolder.application.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
本機的方式來做到這一點作爲控制器(因此對於服務,異步工作等)的Grails的2.0外面是使用LinkGenerator類。無處不在,並在官方文檔中提到。見例如這裏
http://mrhaki.blogspot.ca/2012/01/grails-goodness-generate-links-outside.html
必須有比這更多了,在一個Grails控制器只用上面的代碼提供`錯誤= groovy.lang.MissingPropertyException:沒有這樣的屬性:g`。 – aroth 2012-10-11 00:53:06
絕對是更多的!請參閱Matt Christianson關於如何解決「沒有這樣的屬性:g」錯誤的答案。 – Twelve24 2016-03-21 22:59:02