2016-08-04 14 views
0

「< g:if>」と「< g:else>」のようなGroovyコードを生成するカスタムgrailsタグを作成する方法に関するドキュメントはありますか?カスタムGrailsタグを作成するコード

通常のgrails taglibを使用して、HTMLまたはRaw出力を生成することができますが、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> 

、私はこの能力をしたいと思います。

一般に、現在のtaglib形式に加えて、私のツールボックスに別のツールがあります。

+0

あなたが提供することができ:そうは次のように

class SomethingTagLib { static namespace = "ns" def doSomethingCool = { attrs, body -> if (attrs.key == 'foo') { out << body() } } } 

あなたは、このタグを使用することができます正確に何を達成したいのですか? –

+0

はい、もう少し具体的に質問を更新しました。 –

+0

'g:if'タグをステロイドにしたい場合は元の' if'タグを拡張してください – injecteer

答えて

0

key == 'foo'、あなたはこのようにすることを行うことができたときに、たとえばあなただけの条件テキストをレンダリングする場合:

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

ご意見ありがとうございます。私はこの方法でtaglibを作成する方法に精通しています。私はより複雑なバージョンを探しています。私はこれをうまく反映させるために質問を更新しました。 –

関連する問題