我正在尝试编写自己的编解码器,用一个链接替换输入的数据(想想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
}
}
有什么想法吗? 谢谢到目前为止
答案 0 :(得分:0)
您可能需要找到bean,因为在代码运行之前它可能不会注入。我不确定确切的名称,但它应该是链接:
linkGenerator = grailsApplication.mainContext.getBean('grailsLinkGenerator')