我有一个g:在我的视图中选择显示产品列表:
<g:form name="addproductform" action="saveProductToInventory" method="post">
<g:select from="${products}" name="product" value="${it?.id}" />
<g:hiddenField name="inventory.id" value="${inventoryInstance.id}" />
<input class="save" type="submit" value="Save product" />
</g:form>
$ {products}是所有产品的列表。如果我打印传递给控制器的params变量,我得到:
[产品:测试产品, 库存:[id:1],inventory.id:1, 动作:saveProductToInventory, 控制器:库存]
产品键包含名称,而不是我在g:select标记中添加value =“$ {it?.id}”时我认为包含的ID。
我如何声明g:select标签以现在呈现产品名称,但是将产品ID作为值传递?
答案 0 :(得分:1)
您需要对标记使用optionKey参数。
e.g。
<g:select from="${products}" name="product" value="${it?.id}" optionKey="id" />
值arg用于选择字段的当前值。