Foo
アプリケーションの特定の部分に固有の処理を行いUtil
、全体で共有される2つのtaglibがあるとします。私はこのようなことをしたい:
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:そのようなプロパティはありません:クラスのutil:org.example.FooTagLib
おそらく注目すべき点:ログには、次のように表示されます。
警告-「groovyPagesUriService」という名前のBeanがありません。
明らかに、UtilTagLib
正しく作成および注入されていません。どうすればこれを修正できますか?