簡體   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