如何从控制器响应/发送多个对象以进行查看?

时间:2019-06-14 12:53:09

标签: grails grails3

我们在任何地方都找不到如何执行此操作的示例。

似乎从控制器向视图发送数据的方法是使用响应。通常回应需要一个论点。我们想发送很多。

例如如果我们有一个控制面板,其中显示了许多不同的数据(用户帐户余额,最近的交易,消息等)。

我们的控制器如下:

def index() {

    User user = User.find (session.getAttribute("user"))
    def accounts = Accounts.findAllByUser(user)
    def messages = Messages.findAllByUser(user)

    // this doesn't work, but we guess something like this might be possible.
    respond [accounts:accounts, messages:messages]
}

此外,findAllBy文档没有说明返回的内容。它可能是数组,映射,列表。

然后在我们看来,我们应该能够执行以下操作:

${accounts[0].balance}

或者也许

${accounts.size()}

如果findBy ...返回列表。

1 个答案:

答案 0 :(得分:0)

感谢Mike W,答案是:

def index() {

    User user = User.find (session.getAttribute("user"))
    def accounts = Accounts.findAllByUser(user)
    def messages = Messages.findAllByUser(user)

    [accounts:accounts, messages:messages]
}

很遗憾,这不在文档的示例中,这是一个非常有用的功能