Grails:从 g:if 标签调用 taglib

标签 grails taglib

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

我试过了:

<g:if test="${<custom:tag/> && other.boolean}">

但这会引发错误。

我也试过:
<g:if test="<custom:tag/> && ${other.boolean}">

但这也会引发错误。

最佳答案

taglib 是什么样子的?查看用法它应该如下所示:

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

    def tag = { attrs, body ->
        //returns an object (can be boolean)
    }
}

默认情况下,标签库会返回 StreamCharBuffer .如果您需要返回一个对象(如在您的情况下用作条件语句的一部分),我想您需要 returnObjectFromTags如上图所示。它指定哪个标签偏离默认行为并返回一个对象。

此外,您应该使用 Tim 提到的 taglib:
<g:if test="${custom.tag() && other.boolean}"> //should be the appropriate way

关于Grails:从 g:if 标签调用 taglib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21991970/

相关文章:

c# - 使用 taglib 在 WPF 中的图像框中显示封面

java - 没有为 taglib 文件中的文档检测到语法约束(DTD 或 XML 模式)

session - 将 session 值从 Controller 传递到src/groovy类

security - 关于安全性/可见性的基本Groovy查询

javascript - 如果没有此警报框,为什么我的代码无法工作?

Grails:如何在标签库中使用请求范围服务?

c++ - 使用 TagLib 编写 ID3v2 元数据

tomcat - 使用 jenkins 将 war 文件重新部署到 tomcat 服务器失败

javascript - 在 html2canvas 事件中设置隐藏字段的值

spring - 添加Spring库以在Freemarker中使用JSP Taglib来提高安全性