grails - 如何在Grails的选择框中显示父域字段

标签 grails gorm grails-2.0 grails-domain-class grails-controller

我正在使用grails 2.1.0。我需要在gsp页面的选择框中通过父链显示父域的字段值。但是我出错了。到目前为止,我已经尝试如下:

我的第一个域包含名为adtAuditPack的 parent >>>

    class AdtAuditorSchdlPack {
    ......
    static belongsTo = [adtAuditPack: AdtAuditPack,fiscalYear:FiscalYear]
    ......
}

我的上述域名的第一位 parent 名为AdtAuditPack >>>
class AdtAuditPack {
    ......
    static belongsTo = [auditFirm:AuditFirm]
    ......
}

我的adtAuditorSchdlPack的第二个父名为AuditFirm >>>
    class AuditFirm {
    ......
    String auditFirmName
    ......
}

现在,我想将auditFirm名称显示为optionValue,将AdtAuditorSchdlPack.id显示为optionKey。为此,我选择以下内容>>>
<g:select id="auditPack0" name="auditPack0" from="${AdtAuditorSchdlPack?.adtAuditPack?.auditFirm}" style="width: 200px;"
                          optionKey="id" optionValue="auditFirmName" noSelection="['': 'Select One']"
                          required="" class="form-control"/>

它显示以下工具提示>>

Cannot reference non-static symbol 'adtAuditPack' from static context



谁能帮我这个忙吗?!!!有没有办法做到这一点?

最佳答案

您可以在服务/ Controller 上构造下拉列表,然后通过模式传递给gsp页面并使用。

Controller /服务方法如下所示:

def c = AdtAuditorSchdlPack .createCriteria()
    def results = c.list() {
        and{ 
           // your criteria logic
        }
        order('id', 'asc')
    }

根据您的逻辑构造列表:
List auditFirmList= new ArrayList()
        results.each { AdtAuditorSchdlPack adtAuditPack->
            dataReturns.add([id: adtAuditPack?.auditFirm?.id, name: "${adtAuditPack?.auditFirm?.auditFirmName}"])
        }

现在,您可以通过模型传递此列表,并按如下所示在下拉菜单中使用。
<g:select class=" form-control" id="auditPack0" name='auditPack0'
noSelection="${['': 'Select one...']}" from="${auditFirmList}" optionKey="id" optionValue="name"></g:select>

optionKey和optionValue在gsp View 页面中可能会标记为红色,但可以在运行时使用。

关于grails - 如何在Grails的选择框中显示父域字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28475340/

相关文章:

grails - 如何在 grails 3.3.8 中模拟被测 Controller 的方法

grails - GORM findAll不起作用

mongodb - 如何在grails mongodb插件中按嵌入式对象的属性过滤

grails - 在Grails中克隆域实例

grails - Grails-在启动Grails应用程序之前,如何验证我的中间件(Java应用程序)是否已启动

html - 从 JSON 数组读取到 Grails HTML Select 标签

grails - 在Ubuntu虚拟机上安装Grails

grails - Grails 2,战法-> java.lang.ClassNotFoundException:grails.test.mixin.services.ServiceUnitTestMixin

grails - Grails插件的硬依赖关系如何工作?

sql - Grails i18n。使用一个SQL select查询域类和翻译