如何在grails中的taglib中使用g:select

如何在grails中的taglib中使用g:select,grails,taglib,Grails,Taglib,有谁能帮助我在创建taglib功能时如何使用grails标记,如g:select、g:label 下面是我的代码 我已经创建了一个taglib功能 def dynamicAdvancedSearchTagLib={attrs, body -> String beanName = attrs.remove("beanName") def bean = request.getAttribute(beanName) out << createAdvanced

有谁能帮助我在创建taglib功能时如何使用grails标记,如g:select、g:label

下面是我的代码

我已经创建了一个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>"""
}
def dynamicAdvancedSearchTagLib={attrs,body->
字符串beanName=attrs.remove(“beanName”)
defbean=request.getAttribute(beanName)

out你需要使用这样的东西

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)
是我在“覆盖和重用”部分找到的关于上述内容的教程

作为替代方案,您也可以使用

out << g.select(attrs) 

out感谢您的快速响应。我仍然不了解如何在taglib中使用grails标记的整体情况。有任何示例或良好的教程可以引导我走上正确的道路。@bharathi如代码中所述,您首先需要获取taglib函数所在的bean实例,然后简单地调用函数Action.就像我为
formTagLib
@bharathi添加了一个教程链接谢谢你Ankur。我尝试了textField,它工作得很好。我还有一个问题。在我的例子中,searchCriteria是一个grrovy类。我需要访问taglib中的inList约束。如何做?检查此链接以获取所有约束
out << g.select(attrs)