grails - Grails-通过应用程序上下文获取taglib bean

标签 grails taglib spring-bean

当尝试通过以下方法将实例获取到 Controller 中的自定义taglib时:

def myTagLib = grailsApplication.mainContext.getBean('com.mypackage.MyTagLib')

我收到以下错误:

No bean named 'com.mypackage.MyTagLib' is defined. Stacktrace follows: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.mypackage.MyTagLib' is defined



但是,我能够毫无问题地获得内置taglib的实例:
def g = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib')

根据following,这应该起作用。有谁知道为什么我的taglib无法被识别为有效的bean?

我正在使用Grails 2.4.0

最佳答案

根据Grails文档的Section 8.3.5,如果您的taglib是命名空间的(通常是一种好习惯),则可以通过使用命名空间作为方法调用的前缀来简单地调用taglib方法。

例如,如果您有一个标记库“my”命名空间,并且它具有一个名为“smiley”的方法,该方法接受属性“happy”,那么您可以在 Controller 中使用以下行,而无需额外导入:

my.smiley(happy: true)

关于grails - Grails-通过应用程序上下文获取taglib bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25551138/

相关文章:

java - if taglib 与 forEach jSTL 的两项进行比较

java - 在自定义 JSP 标记范围内嵌套 JSP

java - 将结果(返回值)输出到变量而不是打印出来的 JSP 标记文件

java - Spring在运行时选择bean实现

java - Spring-boot 中 ConditionalOnBean 的意外行为

grails - Grails in Action 2nd Edition-错误生成脚手架

mongodb - 如何在grails mongodb插件中按嵌入式对象的属性过滤

grails - 如何将Domain类导入Groovy脚本?

java - Spring bean无法解析org.joda.time.DateTime的构造函数

grails - grails3.x 中就地插件代码的更改不会自动重新加载