我正在尝试生成serverBaseUrl,然后用它填充一个字段。 我查看了很多关于如何使用LinkGenerator的说明,但我一直在LinkGenerator对象上得到一个空指针异常。
我正在与之合作:
import org.codehaus.groovy.grails.web.mapping.LinkGenerator
MyService{
def linkGenerator
String client_url = getServerUrl()
String getServerUrl(){
linkGenerator.serverBaseURL
}
}
我尝试过使用LinkGenerator linkGenerator,重新定位它,并在Config.groovy中为grails.serverURL添加一个值。字符串client_url位于触发器上,因此在程序运行之前不会调用该方法。
我正在使用Grails 2.4.3和Java 1.8
答案 0 :(得分:1)
该bean实际上称为grailsLinkGenerator
,因此您需要将其声明为LinkGenerator grailsLinkGenerator
(或def grailsLinkGenerator
)。
我找不到它的官方文档,但请查看示例http://mrhaki.blogspot.de/2012/01/grails-goodness-generate-links-outside.html。
答案 1 :(得分:1)
您的方法存在一些问题。一个是你可能想要访问grailsLinkGenerator
bean。
class MyService {
def grailsLinkGenerator
String getServerUrl(){
grailsLinkGenerator.serverBaseURL
}
}
在你的代码中你有这个:
class MyService{
def linkGenerator
String client_url = getServerUrl()
String getServerUrl(){
linkGenerator.serverBaseURL
}
}
除了bean名称问题之外,你还试图在依赖注入发生之前初始化client_url
。目前尚不清楚为什么你需要这个属性开始,但如果你真的想要这样的东西,试试这个......
import org.springframework.beans.factory.InitializingBean
class MyService implements InitializingBean {
def grailsLinkGenerator
String client_url
String getServerUrl(){
grailsLinkGenerator.serverBaseURL
}
void afterPropertiesSet() {
client_url = getServerUrl()
}
}
我希望有所帮助。