我有三个域类:MaterialsOfConcern、Material 和 MaterialStatus 设置如下:
class MaterialsOfConcern {
Material material
MaterialStatus materialStatus
}
<g:each var="material" in="${materials}">
<g:select name="materialStatus[${material.id}].id" from="${MaterialStatus.list()}" value="?" class="many-to-one"/>
</g:each>
最佳答案
我不确定它是否真的是一个更好的选择。但是 Grails 确实提供了一个功能,可以将具有相同名称的多个表单字段分组为一个列表。
使用您的示例,您可以简单地将 Material 状态列表传递给您的 Controller ,然后根据它们的列表顺序解决它们。
<g:each var="material" in="${materials}">
<g:select name="materialStatus" from="${MaterialStatus.list()}"/>
</g:each>
def statuses = params.list( 'materialStatus' )
materials.eachWithIndex{ material, index -> new MaterialOfConcern( material: material, materialStatus: statuses[ index ] ) }
https://stackoverflow.com/questions/9761844/