g:grails中的select标记不在目标字段中存储列表元素的键

g:grails中的select标记不在目标字段中存储列表元素的键,grails,gsp,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': '']"/> 它包含的合作伙伴只有属性名,当然还有id 我想要选择列表中的

我的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': '']"/>    
它包含的合作伙伴只有属性名,当然还有id

我想要选择列表中的姓名,并想要存储在列表中的合作伙伴id

auftragInstance.kundenNr
请随意编写工作代码g:选择


peter

值属性用于提供初始选择。提交表单时,“名称”属性将包含选定的值。在控制器中,您可以得到如下结果:

def partner = params.partner
见:

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

if (params.partner.id == 'null')
        salesOrderInstance.kundenNr = 0
    else
        salesOrderInstance.kundenNr = params.partner.id.toLong()    
该代码块包含在ArbeitsgangController中,因此我问题中的第二行html工作正常

以下select(省略id和value子句)也可以:

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

不能删除,这对更新很重要。

查看生成的HTML,看看是否设置了正确的值如何查看生成的HTML?好的,找到了生成的HTML,它只是一个浏览器功能,现在我尝试从itI获取一些有用的信息。我只是比较了我的2个选择的生成HTML,他们是完全相同的一个工作正常一个没有,奇怪的是我知道在哪里可以找到选择标签的文档,谢谢你无论如何。但我不理解这些文件。特别是对于一个简单的问题,我找不到答案:在哪里可以对所选键的目标字段进行编码?是名称、键、值、id、optionKey、optionValue还是其他任何内容?目标字段的名称在名称中。因此,如果您在选择标记name=“partner”中说,它将在params.partner中可用。如果您说name=“foo”,它将在params.foo中可用。
if (params.partner.id == 'null')
        salesOrderInstance.kundenNr = 0
    else
        salesOrderInstance.kundenNr = params.partner.id.toLong()    
<g:select name="partner.id" from="${org.strotmann.partner.Partner.partners}" optionKey="id" class="many-to-one" noSelection="['null': '']"/>
value="${auftragInstance?.kundenNr}"