我有一个自定义标签库。我将把 taglib 的结果传递给 g:render taglib。其中一个参数是 Asset 对象。如果我自己调用标签库,它工作正常。该参数实际上是一个资产对象。
例子:
templateFinder template="_displayMain" findByFactory="asset" findByObject="${params.asset}"
正确地将 params.asset 呈现为 templateFinder taglib 中的资产。
但是,一旦我将它添加到 g:render taglib 中,它就会变成 Asset 对象的 toString 表示。
例子:
render template="${g.templateFinder(template:'_displayMain', findByFactory:'asset', findByObject:"${params.asset}")}" ..../>
这会导致我的 Asset 类出现 Class Cast 错误,其中包含 class 'org.codehaus.groovy.runtime.GStringImpl'。
我很困惑为什么这在第一个示例中呈现为对象,而在第二个示例中呈现为 Gstring。
谢谢你的帮助。