我正在尝试生成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/

10-10 15:31