Grails 参数作为Groovy字符串而不是对象返回

Grails 参数作为Groovy字符串而不是对象返回,grails,gsp,grails-2.0,Grails,Gsp,Grails 2.0,我有一个自定义标记库。我将把taglib的结果传递给g:render taglib。其中一个参数是资产对象。如果我单独调用taglib,它就可以正常工作。该参数实际上是一个资产对象 例如: templateFinder template="_displayMain" findByFactory="asset" findByObject="${params.asset}" render template="${g.templateFinder(template:'_displayMain',

我有一个自定义标记库。我将把taglib的结果传递给g:render taglib。其中一个参数是资产对象。如果我单独调用taglib,它就可以正常工作。该参数实际上是一个资产对象

例如:

templateFinder template="_displayMain" findByFactory="asset" findByObject="${params.asset}"
 render template="${g.templateFinder(template:'_displayMain', findByFactory:'asset', findByObject:"${params.asset}")}" ..../>
正确地将params.asset呈现为templateFinder标记库中的资产

但是,一旦我将它添加到g:render标记库中,它就会变成资产对象的toString表示

例如:

templateFinder template="_displayMain" findByFactory="asset" findByObject="${params.asset}"
 render template="${g.templateFinder(template:'_displayMain', findByFactory:'asset', findByObject:"${params.asset}")}" ..../>
这将导致将类“org.codehaus.groovy.runtime.GStringImpl”的类强制转换为我的资产类

我不明白为什么在第一个示例中它是作为对象渲染的,而在第二个示例中它是作为Gstring渲染的


谢谢你的帮助

将资产封装在
“${…}”
中,将其转换为字符串。试试这个:

<g:render template="${g.templateFinder(template:'_displayMain', 
    findByFactory:'asset', findByObject: params.asset)}" ..../>