Grails 如何在列表视图中的列内调用taglib方法?

Grails 如何在列表视图中的列内调用taglib方法?,grails,gsp,Grails,Gsp,我有一个用taglib.groovy编写的taglib方法。我想在对象列表视图中的一列中使用该方法 我应该如何处理这个问题?您可以像调用任何其他taglib方法一样调用它: <g:myTag /> 或者对于使用Grails 3的自定义标记库: myNameSpace.myTag( attr1: 'Attr1', attr2: 'Attr2' ) 另一种访问方式: def myTagLib = grailsApplication.mainContext.getBean( 'com.

我有一个用taglib.groovy编写的taglib方法。我想在对象列表视图中的一列中使用该方法


我应该如何处理这个问题?

您可以像调用任何其他taglib方法一样调用它:

<g:myTag />
或者对于使用Grails 3的自定义标记库:

myNameSpace.myTag( attr1: 'Attr1', attr2: 'Attr2' )
另一种访问方式:

def myTagLib = grailsApplication.mainContext.getBean( 'com.MyTagLib' )
myTagLib.myTag( attr1: 'Attr1', attr2: 'Attr2' )

你在用脚手架吗?不!!我是否使用脚手架有关系吗?我在gsp文件中这样称呼它。我想知道如何在任何groovy文件中实现这一点。谢谢。你的意思是如何从控制器调用它吗?是的,我的意思是从任何其他groovy文件(如控制器、listDataSource等)调用。谢谢@Mike W。这非常有帮助。还有一个问题需要澄清,def myTagLib的作用是什么?我在这里感到困惑,因为我输入了aglib.groovy作为自定义标记库,其中有一个名为“contactList”的方法。如果我想在另一个groovy文件中调用“contactList”,该怎么办。另外,我有一个名为“myApp”的自定义名称空间。实际上,我刚刚用Grails3进行了测试&您可以像调用g名称空间一样调用名称空间和闭包名称,更新了答案以反映,因此在您的例子中,在控制器中调用myApp.contactList()
g.myTag( attr1: 'Attr1', attr2: 'Attr2' )
myNameSpace.myTag( attr1: 'Attr1', attr2: 'Attr2' )
def myTagLib = grailsApplication.mainContext.getBean( 'com.MyTagLib' )
myTagLib.myTag( attr1: 'Attr1', attr2: 'Attr2' )