【发布时间】:2009-11-28 02:52:56
【问题描述】:
我有一个具有Integer seed 属性的Team 对象列表。我想以单一形式一次编辑所有团队的种子。我确定 Grails 支持索引参数,但我无法让它工作。
这就是我所拥有的,它确实有效,但是我跳过了太多的方式,必须有更好的方法。
gsp:
<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 的期望也不低! ;-)
提前感谢您的帮助。
【问题讨论】:
标签: grails properties indexed