编解码器内的Grails createLink?

标签 grails groovy codec illegalargumentexception

我正在尝试编写自己的编解码器,它将输入的数据替换为指向它的链接(想想 BBCode)。我尝试使用 LinkGenerator ,但它会抛出 IllegalArgumentExceptionobject 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/

相关文章:

grails - Intellij IDEA - 使用 -source 1.8(或 1.7)编译 grails 项目

java - 无法在 pdf :grails 中渲染图像

java - Spock 测试因 NullPointerException 失败

java - 如何测试事务数据库代码?

hadoop - 从 groovy 脚本执行 Hadoop 文件系统命令时没有错误但行为奇怪

mysql - Grails 域约束映射

c++ - 重新解释 c 中的强制转换

spring - 使用Spring Security插件使用文件扩展名内容协商?

swift - 判断 iOS 设备是否支持 HEVC 编码

找不到用于 FFmpeg 转码的 x264 编解码器设备