尝试通过以下方法将实例获取到控制器中的自定义taglib时:
def myTagLib = grailsApplication.mainContext.getBean('com.mypackage.MyTagLib')
我收到以下错误:
没有名为' com.mypackage.MyTagLib'被定义为。堆栈跟踪 如下: org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 豆名为' com.mypackage.MyTagLib'已定义
但是,我能够毫无问题地获得内置taglib的实例:
def g = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib')
根据following,这应该有效。有没有人有任何想法为什么我的taglib不会被识别为有效的bean?
我正在使用Grails 2.4.0
答案 0 :(得分:1)
根据Grails文档的Section 8.3.5,如果你的taglib是命名空间(这通常是一个好习惯),你可以通过使用你的命名空间作为方法调用的前缀来调用taglib方法。
例如,如果你有一个taglib命名空间“my”并且它有一个名为“smiley”的方法接受一个属性“happy”,你可以在控制器中有以下行,不需要额外的导入:
my.smiley(happy: true)