在我们基于grails 2.0.4的应用程序中,我们覆盖了Grails ApplicationTagLib。迁移到grails 2.1.0之后,ApplicationTagLib的覆盖不再有效。在我们的gsp中,返回的结果只是空的。
以下是我们使用的简化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 / user / showImage / 7)。但是之后在gsp中输出是空的。
GSP致电:
${createLink(controller:'user', action:'showUser', id: userInstance.id)}
答案 0 :(得分:1)
尝试将其写入out
:
def createLink = { attrs ->
// call native create link after modifications
def link = applicationTagLib.createLink.call(attrs)
out << link
}