假设我有两个标记库,Foo
它们针对我的应用程序的特定部分执行特定的操作,并且Util
在整个应用程序中共享。我想做这样的事情:
class UtilTagLib {
def utilTag = { attrs ->
...
}
}
class FooTagLib {
def fooTag = {
...
out << g.utilTag(att1: "att1", att2: "att2")
...
}
}
但是,当我这样做并尝试运行我的单元测试时fooTag()
,我得到:
groovy.lang.MissingMethodException:没有方法签名:org.codehaus.groovy.grails.web.pages.GroovyPage.utilTag() 适用于参数类型:(java.util.LinkedHashMap) 值:[[att1:att1,att2 :att2]]
我试着给UtilTagLib
它自己的命名空间
static namespace = "util"
并将呼叫更改为
out << util.utilTag(...)
但这只是让我
groovy.lang.MissingPropertyException:没有这样的属性:类的实用程序:org.example.FooTagLib
可能还值得注意:在日志中,我看到:
警告 - 缺少名为“groovyPagesUriService”的 Bean。
显然,UtilTagLib
没有正确创建和注入。我怎样才能解决这个问题?