Tôi có một danh sách các đối tượng Team
có thuộc tính Integer seed
. Tôi muốn chỉnh sửa tất cả hạt giống của đội cùng một lúc, trong một hình thức duy nhất. Tôi là chắc chắn rằng Grails hỗ trợ các tham số được lập chỉ mục, nhưng tôi không thể làm cho nó hoạt động.Tham số được lập chỉ mục của Grails
Đây là những gì tôi có, và nó hoạt động nhưng tôi nhảy qua cách quá nhiều vòng và phải có cách tốt hơn.
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>
điều khiển:
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)
}
Mà không phải là khủng khiếp? Cách quá nhiều tiếng ồn. Làm thế nào tôi có thể làm một cái gì đó dọc theo dòng:
params.teams.each { t ->
def team = Team.get(t.id)
team.seed = t.seed
}
Đó là, làm thế nào để lập bản đồ params tên team[0].seed
, team[0].id
, team[1].seed
, team[1].id
vào một danh sách?
Trong Stripes bạn chỉ có thể có tài sản List<Team>
và nó sẽ chỉ hoạt động. Tôi mong đợi không ít từ Grails! ;-)
Cảm ơn trước sự giúp đỡ của bạn.
Tôi đã sử dụng đóng để tạo biểu mẫu. Câu hỏi đặt ra là, làm thế nào để lấy các tham số được lập chỉ mục trong bộ điều khiển để xây dựng một danh sách? – foxdonut