2012-12-28 55 views
2

任何人都可以幫助我如何在創建taglib功能時使用g:select,g:label等grails標籤。如何使用g:在grails中的taglib中選擇

以下是我的代碼。

我已創建一個標籤庫功能

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>""" 
} 

這裏我的要求,而不是使用選擇HTML標籤,我需要使用G:選擇。

我有一個靜態頁面GSP我已經使用G:選擇作爲

<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在代碼中提到你首先需要獲得一個bean的實例,其中taglib函數駐留在那裏,然後簡單地調用函數。就像我爲'formTagLib'所做的那樣' – Ankur

+0

@bharathi添加了教程鏈接 – Ankur

相關問題