如何在grails中使用以下情况下的按钮?

时间:2013-05-21 14:47:15

标签: grails button view controller

我正在返回包含多个项目的地图值。地图如下:

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。

1 个答案:

答案 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参考文档中的以下部分:eachcreateLink