我正在尝试编写自己的编解码器,它将输入的数据替换为指向它的链接(想想 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
}
}
有任何想法吗?
感谢到目前为止
最佳答案
您可能需要找到 bean,因为它可能不会在您的代码运行之前进行注入(inject)。我不确定确切的名称,但应该是链接:
linkGenerator = grailsApplication.mainContext.getBean('grailsLinkGenerator')
关于编解码器内的Grails createLink?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18489628/