2012-11-29 116 views
2

我有一個自定義taglib。我將把taglib的結果傳遞給g:render taglib。其中一個參數是Asset對象。如果我自己調用taglib,它可以正常工作。該參數實際上是一個資產對象。作爲Groovy字符串而不是對象返回的參數

實施例:

templateFinder template="_displayMain" findByFactory="asset" findByObject="${params.asset}" 

的正確呈現params.asset作爲templateFinder標籤庫的資產。

但是,一旦我將它添加到g:render taglib中,它就會變成Asset對象的toString表示形式。

實施例:

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

這導致類轉換errorwith類 'org.codehaus.groovy.runtime.GStringImpl' 我的資產類別。

我很困惑,爲什麼這是在第一個例子中渲染爲對象,而在第二個例子中是Gstring。

感謝您的任何幫助。

回答

2

您將資產轉換爲字符串,方法是將其包含在"${...}"中。試試這個:

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

謝謝,就是這樣。 – Jeremy

相關問題