我有一个具有属性的Team
对象列表。Integer seed
我想以单一形式一次编辑所有团队的种子。我确信Grails 支持索引参数,但我无法让它工作。
这就是我所拥有的,它有效,但我跳过了太多的箍,必须有更好的方法。
普惠制:
<g:form action="setSeeds">
...
<g:each in="${teams}" status="i" var="team">
<input type="hidden" name="teams[${i}].id" value="${team.id}">
<input type="text" size="2" name="teams[${i}].seed" value="${team.seed}">
</g:each>
</g:form>
控制器:
def setSeeds = {
(0..<30).each { i ->
def team = Team.get(Integer.parseInt(params["teams[${i}].id"]))
team.seed = Integer.parseInt(params["teams[${i}].seed"])
}
redirect(action:list)
}
那不是很可怕吗?噪音太大了。我该如何做一些事情:
params.teams.each { t ->
def team = Team.get(t.id)
team.seed = t.seed
}
也就是说,如何将名为team[0].seed
, team[0].id
, team[1].seed
,team[1].id
的参数映射到列表?
在Stripes中,你可以只拥有一个List<Team>
属性,它就可以工作。我对 Grails 的期望也不低!;-)
在此先感谢您的帮助。