0

我试图从我的 grails 项目中的控制器调用一个方法,我可以迭代并在列表中显示项目。

//Controller code
Class TicketController {

static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

def ticketsByDate = {
    return [tickets : Ticket.list(sort: 'dateCreated')]
}
...

GSP code

<div class="box-content">
        <ul class="tickets">
            <g:each var="ticket" in="${ticketsByDate}" controller="ticket">
                <li>${ticket.id}</li>
            </g:each>

我可能从错误的角度看待这个问题,但我想要做的是从一个聚合来自多个不同来源的数据的页面进行多次这样的调用。这些来源很可能是调用服务的控制器方法。

有什么建议吗?

提前致谢

4

1 回答 1

3

查看每个标签的文档。它用于迭代集合。您必须将此集合从控制器传递到视图。

对于您的示例 - 将以下代码段放入您的ticketsByDate视图中:

<g:each var="ticket" in="${tickets}">
    <li>${ticket.id}</li>
</g:each>

如果要遍历数据源的不同对象,则必须在控制器中聚合数据并将它们传递给视图:

def ticketsByDate = {
    return [tickets : Ticket.list(sort: 'dateCreated'), 
            moreTickets : AnotherThicket.list(), 
            users: User.list(),                 
            ...]
}
于 2012-11-23T20:37:16.280 回答