grails 4 从另一个标签库调用命名空间标签库

grails 4 call a namespaced taglib from another taglib

如何在 grails 4 中访问与另一个标签库具有不同命名空间的标签库? 我好像不能打电话。

这是一个例子

 class MyLibTagLib{

  static namespace="myLib"

  def fancy={attrs->
      ....
  }
}

import app.lib.MyLibTagLib
class CallerTagLib{

  //in the default 'g' namespace

  //def myLib //injection fails

  def fancyText={attrs->
      //fails
      out << myLib.fancy(attrs)
      //also fails
      grailsApplication.mainContext.getBean('app.lib.MyLibTagLib')
  }
}

我无法重现您描述的问题行为。在 https://github.com/jeffbrown/tagquestion.

查看项目

https://github.com/jeffbrown/tagquestion/blob/9a389f957c8327d071e55a131b9c8a83663a6f3e/grails-app/taglib/demo/MyLibTagLib.groovy

package demo

class MyLibTagLib {
    static namespace="myLib"

    def fancy={attrs->
        out << 'Something Fancy'
    }
}

https://github.com/jeffbrown/tagquestion/blob/9a389f957c8327d071e55a131b9c8a83663a6f3e/grails-app/taglib/demo/CallerTagLib.groovy

package demo

class CallerTagLib {

    def fancyText = { attrs ->
        out << myLib.fancy(attrs)
    }
}

https://github.com/jeffbrown/tagquestion/blob/9a389f957c8327d071e55a131b9c8a83663a6f3e/grails-app/views/index.gsp#L56 的主要 index.gsp 调用 <g:fancyText/> 并且有效。