我正在尝试生成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
最佳答案
您的方法有两个问题。一种是您可能要访问grailsLinkGenerator
bean。
class MyService {
def grailsLinkGenerator
String getServerUrl(){
grailsLinkGenerator.serverBaseURL
}
}
在您的代码中,您有以下内容:
class MyService{
def linkGenerator
String client_url = getServerUrl()
String getServerUrl(){
linkGenerator.serverBaseURL
}
}
除了bean名称问题之外,您还需要在依赖项注入(inject)发生之前尝试初始化
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()
}
}
希望对您有所帮助。
关于grails - 初始化Grails 2.4.3后,LinkGenerator对象为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31922927/