覆盖应用程序TagLib似乎不再适用于grails 2.1

时间:2012-08-02 16:37:40

标签: grails grails-2.0

在我们基于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)}

1 个答案:

答案 0 :(得分:1)

尝试将其写入out

,而不是返回值
def createLink = { attrs ->
  // call native create link after modifications
  def link = applicationTagLib.createLink.call(attrs)
  out << link
}