Grails:从g:if标签调用taglib

Har*_*cle 3 grails taglib

我有一个自定义标记库,它返回一个布尔对象,以便我的GSP可以决定是否显示一段HTML.我想使用g:if标签检查这个布尔值,因为我还需要检查一些其他值(在taglib中不可访问).但是,我不知道如何从标签中实际调用taglib?

我试过了:

<g:if test="${<custom:tag/> && other.boolean}">
Run Code Online (Sandbox Code Playgroud)

但这会引发错误.

我也尝试过:

<g:if test="<custom:tag/> && ${other.boolean}">
Run Code Online (Sandbox Code Playgroud)

但这也会引发错误.

dma*_*tro 8

taglib是怎样的?看它的用法应该如下:

class SomeTagLib {
    static namespace = "custom"
    static returnObjectForTags = ['tag']

    def tag = { attrs, body ->
        //returns an object (can be boolean)
    }
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,taglibs将返回StreamCharBuffer.如果你需要一个返回的对象(如你的情况那样用作条件语句的一部分),我猜你需要returnObjectFromTags如上所示.它指定哪个标记偏离默认行为并返回一个对象.

另外,你应该使用Tim提到的taglib:

<g:if test="${custom.tag() && other.boolean}"> //should be the appropriate way
Run Code Online (Sandbox Code Playgroud)