我正在返回包含多个项目的地图值。地图如下:
def myList = []
//Some code to obtain the List
List << ["Id": Id,"Name": Name,"Code": sCode, "RunType": x ]
return [items: List]
在我的GSP页面中,我使用以下代码在我的网页中打印出来。
<%
def counter = 0
for (i in items) {
counter = counter + 1
println("<td>" + i + "</td>" + "\n")
if (counter == 1) {
println("</tr><tr>")
counter = 0
}
}
%>
输出如下:
[Id:i-d0f5, Name:es_test_1b_110.test.com, Code:16, RunType:On Demand]
[Id:i-7890, Name:namc-qc.test.com, Code:16, RunType:On Demand]
[Id:i-ee56, Name:abcdef.test.com, Code:16, RunType:On Demand]
[Id:i-c41e, Name:backup.grails.test.com, Code:80, RunType:On Demand]
我现在需要的是为每个打印的值添加一个按钮(因此,如果打印6个服务器将显示6个按钮,如果打印10个服务器将显示10个按钮)我将使用该按钮通过启动和停止服务器的ID。
答案 0 :(得分:2)
Grails有一些强大的内置GSP标签,在这里非常方便。例如:
<g:each in="${items}" var="i">
<tr>
<td>${i.Id}</td>
<td>${i.Name}</td>
<td>${i.Code}</td>
<td>${i.RunType}</td>
<td><a class="button" href="${createLink(controller: '<controllerName>', action: 'start', id: i.Id)}">Start</a></td>
</tr>
</g:each>
当然,有很多其他方法可以解决这个问题,但我希望这是一个开始。有关详情,请参阅Grails参考文档中的以下部分:each,createLink