编解码器中的Grails createLink?

时间:2013-08-28 13:40:58

标签: grails groovy codec illegalargumentexception

我正在尝试编写自己的编解码器,用一个链接替换输入的数据(想想BBCode)。我尝试使用LinkGenerator,但会引发IllegalArgumentException object is not an instance of declaring class

import org.codehaus.groovy.grails.web.mapping.LinkGenerator

public class LinkCodec {

LinkGenerator grailsLinkGenerator

def generateLink() 
{
    return grailsLinkGenerator.link(controller:'foo', action:'bar')
}

static encode = 
{ 
    target ->
    def map = [:]
    map.put("\\[link\\](.+?)\\[/link\\]", "<a href=''>\$1</a>")
    map.put("\n", "<br/>")

    for (Map.Entry entry: map.entrySet()) 
    {
        target = target.replaceAll(entry.getKey().toString(), entry.getValue().toString())
    }
    return target
}
}

有什么想法吗? 谢谢到目前为止

1 个答案:

答案 0 :(得分:0)

您可能需要找到bean,因为在代码运行之前它可能不会注入。我不确定确切的名称,但它应该是链接:

linkGenerator = grailsApplication.mainContext.getBean('grailsLinkGenerator')