Ho un elenco di oggetti Team
con proprietà Integer seed
. Voglio modificare tutti i semi dei team contemporaneamente, in un'unica forma. Sono sicuro di che Grails supporta i parametri indicizzati, ma non riesco a farlo funzionare.Parametri indicizzati di Grails
Ecco quello che ho, e funziona, ma sto saltando attraverso modo troppi cerchi e ci deve essere un modo migliore.
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>
regolatore:
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)
}
Non è questo terribile? Troppo rumore. Come posso fare qualcosa sulla falsariga di:
params.teams.each { t ->
def team = Team.get(t.id)
team.seed = t.seed
}
che è, come posso mappare params nome team[0].seed
, team[0].id
, team[1].seed
, team[1].id
a un elenco?
In Stripes è sufficiente avere una proprietà List<Team>
e funzionerà. Non mi aspetto niente di meno da Grails! ;-)
Grazie in anticipo per il vostro aiuto.
Sto già utilizzando una chiusura per creare un modulo. La domanda è: come posso recuperare i parametri indicizzati nel controller per creare un elenco? – foxdonut