2012-08-02 52 views
1

在我們的基於grails 2.0.4的應用程序中,我們覆蓋了Grails ApplicationTagLib。遷移到grails 2.1.0之後,覆蓋ApplicationTagLib不再有效。在我們的gsp中,返回的結果只是空的。覆蓋ApplicationTagLib似乎不再適用於grails2.1

這裏是簡化的TagLib其中使用由我們:

class CustomizedGrailsTagLib implements ApplicationContextAware { 
    // grails native taglib classes 
    def applicationTagLib 

    void setApplicationContext(ApplicationContext applicationContext) { 
    applicationTagLib = applicationContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib') 
    } 

    def createLink = { attrs -> 
    // call native create link after modifications 
    def link = applicationTagLib.createLink.call(attrs) 
    return link 
    } 
} 

當調試我們看到,可變鏈路具有正確的值(例如/ enterprise20 /用戶/ showImage/7)。但是之後在gsp中輸出是空的。

GSP電話:

${createLink(controller:'user', action:'showUser', id: userInstance.id)} 
+0

那麼,什麼是這裏的問題? – cdeszaq 2012-08-02 16:39:36

回答

1

而不是返回值,試圖將其寫入out

def createLink = { attrs -> 
    // call native create link after modifications 
    def link = applicationTagLib.createLink.call(attrs) 
    out << link 
}