任何人都可以帮我在创建taglib功能时如何使用g:select,g:label这样的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>"""
}
这里是我的要求而不是使用select html标签我需要使用g:select。
我有一个静态gsp页面,我用过g:select as
<g:select id="searchCriteria" name="searchCriteria"
from="${SearchCriteria?.values()}" value="${searchInstance.searchCriteria}"
noSelection="${['':'---Select any One---']}" required="" />
创建taglib功能时必须使用相同的功能..
如果有人知道如何在创建taglib时使用grails标记,请帮助我。
答案 0 :(得分: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)