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)}