2012-12-28 3 views
2

taglib 기능을 생성하는 동안 g : select, g : label과 같은 grails 태그를 사용하는 방법을 알려주십시오.사용 방법 g : grails에서 taglib 내 선택

다음은 제 코드입니다. 선택 :

내가 대신 내가 g을 사용하는 데 필요한 선택 HTML 태그를 사용하는 여기 내 요구 사항을 태그 라이브러리 기능

def dynamicAdvancedSearchTagLib={attrs, body -> 
    String beanName = attrs.remove("beanName") 
    def bean = request.getAttribute(beanName) 
    out << createAdvancedSearchUI(bean) 

} 
def createAdvancedSearchUI(bean){ 
    StringBuilder sb = new StringBuilder(); 

    sb<<"""<fieldset class="search-advanced collapsed"style="border: 1px solid #CCC;padding:0px 21px 0px 21px;border-radius:8px 8px 8px 8px;min-height:24px;"> 
    <legend> 
     <span id="advancedsearch"> <label for="advancedsearch">Advanced Search 
     </label> 
     </span> 
    </legend> 
    <g:form method="post"> 
    <div id="searchcontent"> 
     <div class="advanced-content-search"> 
      <label for="Criteria Name">Criteria Name <span 
       class="required-indicator">*</span> 
      </label> 
      <select id="searchCriteria" name="searchCriteria" required=""> 
      *****<option value="0" selected="selected">Choose...</option> 
      <option value="1">Something</option> 
      <option value="2">Something else</option> 
      <option value="3">Another choice</option>** 
      </select>*** 
     </div> 
     <div style="margin-left: 338px;"> 
      <label for="Enter Your Search Here"> Enter Your Search Here <span 
       class="required-indicator">*</span> 
      </label> 
      <input type="text" name="advancedSearchText" 
       value="" required="" /> 
     </div> 

    </div> 
    </g:form> 
</fieldset>""" 
} 

을 만들 수 있습니다.

나는 내가 g 사용한 정적 GSP 페이지가 : 사람이 사용하는 방법을 알고있는 경우 있습니다 .. 태그 라이브러리 기능을 만들 때 사용할 수 있도록해야한다가

<g:select id="searchCriteria" name="searchCriteria" 
         from="${SearchCriteria?.values()}" value="${searchInstance.searchCriteria}" 
         noSelection="${['':'---Select any One---']}" required="" /> 

동일한 기능으로

을 선택 grails 태그를 만들면서 taglib을 만드십시오. 제발 도와주세요.

답변

3

당신이

def attrs=["id":"searchCriteria","name":"searchCriteria"]//fill other values 
def formTagLib = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.FormTagLib') 
formTagLib.select.call(attrs) 

Here 같은 것을 사용해야하는 것은 내가 덮어 쓰기에서 발견 당신은 또한 사용할 수있는 대안으로 섹션

를 다시 사용하는 위의 튜토리얼

out << g.select(attrs) 
+0

빠른 응답을 보내 주셔서 감사합니다. 아직 전체 그림을 얻지 못하고 있으며, taglib 내에서 grails 태그를 사용하는 방법을 알고 있습니다. 적절한 경로로 나를 데려 갈 수있는 샘플 예제 또는 좋은 자습서가 있습니다. – bharathi

+0

@bharathi 코드에서 언급했듯이 먼저 taglib 함수가있는 bean의 인스턴스를 얻고 그 함수를 호출해야합니다. 'formTagLib'에 한 것처럼 – Ankur

+0

@bharathi가 튜토리얼 링크를 추가했습니다 – Ankur