2016-08-04 2 views
0

"< g : if>"및 "< g : else>"와 유사한 그루비 코드를 생성하는 사용자 정의 grails 태그를 생성하는 방법에 관한 문서가 있습니까?사용자 정의 Grails Tag Lib 생성 코드

일반 grails taglib을 사용하여 html 또는 raw 출력을 생성 할 수 있지만 if 및 else 태그의 작동 방식과 비슷한 해석이 가능한 출력 코드를 찾고 있습니다.

여기에 대한 Grails의 소스 코드의 샘플의 태그 "만약":

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

어떻게 내 자신의 태그 라이브러리 접두어 비슷한 일을 할 수 있습니다.

예 : 내 사용자 정의 태그 다음에 다른 사람> 태그 :

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

복잡한 논리를 숨기고뿐만 아니라, 그래서 내가 <그램를 사용할 수있는이 기능을하고 싶습니다.

일반적으로 현재 툴팁 형식 외에 도구 상자에 다른 도구를 사용하고 싶습니다.

+0

당신이 제공 할 수를 정확히 무엇을 달성하기를 원하십니까? –

+0

예, 좀 더 구체적으로 질문을 업데이트했습니다. –

+0

'g : if' 태그를 스테로이드로 원한다면, 원래의'if' 태그를 확장하십시오. – injecteer

답변

0

예를 들어, 당신은 단지 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> 
+0

의견에 감사드립니다. 나는이 방식으로 taglib을 만드는 방법에 익숙하다. 더 복잡한 버전을 찾고 있습니다. 희망을 갖고이를 반영하도록 제 질문을 업데이트했습니다. –