g:grails中的select标签不会在目标字段中存储list元素的键

时间:2015-07-26 19:52:50

标签: grails gsp

我的grails视图中有以下代码行

<g:select id="partner" name="partner.id" from="${org.strotmann.partner.Partner.partners}" optionKey="id" value="${auftragInstance?.kundenNr}" class="many-to-one" noSelection="['null': '']"/>    

我希望它向我展示from子句中指定的列表作为选择框(工作正常)

从框中选择一个项目后,我希望它将该项目的id存储在value子句中指定的字段中(不起作用,始终为null)

我有点困惑,因为以下codeLine正是我所期望的:

<g:select id="partner" name="partner.id" from="${org.strotmann.partner.Partner.partners}" optionKey="id" value="${arbeitsgangInstance?.kundenNr}" class="many-to-one" noSelection="['null': '']"/>    

有人可以告诉我哪里可以找到差异或者如何重新编码?

彼得

让我重新提出我的问题:

我有一个清单

org.strotmann.partner.Partner.partners

它包含仅具有属性名称的合作伙伴,当然还包含ID。

我想要一个selectList中的名字,并希望合作伙伴的id存储在

auftragInstance.kundenNr

随意编写工作代码:选择

彼得

2 个答案:

答案 0 :(得分:2)

value属性用于提供初始选择。提交表单时,name属性将包含选定的值。在控制器中你可以这样得到它:

def partner = params.partner

请参阅: select tag in grails documentation

答案 1 :(得分:0)

感谢masc的评论我发现AuftragController的保存和更新方法中缺少以下代码片段:

if (params.partner.id == 'null')
        salesOrderInstance.kundenNr = 0
    else
        salesOrderInstance.kundenNr = params.partner.id.toLong()    

该代码块已经包含在ArbeitsgangController中,因此我问题中的第二个html-line工作正常。

以下select(省略了id和value子句)也将执行:

<g:select name="partner.id" from="${org.strotmann.partner.Partner.partners}" optionKey="id" class="many-to-one" noSelection="['null': '']"/>

抱歉值条目

value="${auftragInstance?.kundenNr}"    
不得删除

,这对更新非常重要。