1

我正在尝试编写自己的编解码器,它将输入的数据替换为指向它的链接(想想 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
}
}

有任何想法吗?感谢到目前为止

4

1 回答 1

0

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

linkGenerator = grailsApplication.mainContext.getBean('grailsLinkGenerator')
于 2013-08-28T23:28:45.933 回答