繁体   English   中英

创建自定义Grails Tag Lib生成代码

[英]Create custom Grails Tag Lib the generates code

是否有任何有关如何创建自定义grails标记的文档,该标记生成类似于“ <g:if>”和“ <g:else>”的常规代码?

使用普通的grails taglib,我能够生成html或原始输出,但是我希望输出的代码可以被解释,类似于if和else标签的工作方式。

以下是“ if”标签的Grails源代码示例:

@Override
protected void outputStartTag(String envExpression, String testExpression) {
    out.print("if(");
    out.print(envExpression);
    out.print(" && ");
    out.print(testExpression);
    out.println(") {");
}

我该如何在自己的taglib前缀中做类似的事情。

例:

<mine:doSomethingCool key="foo">This text is conditionally shown</mine:doSomethingCool>

除了隐藏复杂的逻辑之外,我还希望具有此功能,因此可以在自定义标签之后使用<g:else>标签。

通常,除了当前的taglib格式外,我还希望在工具箱中使用其他工具。

例如,如果您只想在key == 'foo'时呈现条件文本,则可以这样做:

class SomethingTagLib {

    static namespace = "ns"

    def doSomethingCool = { attrs, body ->
        if (attrs.key == 'foo') {
            out << body()
        }
    }
}

然后,您可以像下面这样使用此标记:

<ns:doSomethingCool key="foo">This text is conditionally shown<ns:doSomethingCool>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM