【问题标题】:How to use g:select within taglib in grails如何在 grails 的 taglib 中使用 g:select
【发布时间】:2012-12-28 09:17:33
【问题描述】:

谁能帮助我在创建 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>"""
}

这是我的要求,而不是使用 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 标签,请帮助我。

【问题讨论】:

    标签: grails taglib


    【解决方案1】:

    你需要使用这样的东西

    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) 
    

    【讨论】:

    • 感谢您的快速回复。我仍然没有了解整体情况,如何在 taglib 中使用 grails 标签。有任何示例或好的教程可以带我走上正确的道路。
    • @bharathi 如代码中所述,您首先需要获取 taglib 函数所在的 bean 实例,然后简单地调用该函数。就像我为 formTagLib 所做的那样
    • @bharathi 添加了教程链接
    • 谢谢 Ankur。我已经尝试让 textField 正常工作。我还有一个问题。在我的例子中,searchCriteria 是一个 grrovy 类。我需要访问 taglib 中的 inList 约束。如何这样做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2012-09-12
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多