引用控制器中的hasMany属性

时间:2012-10-25 11:56:41

标签: grails

我的用户有一个名为watchlist的hasMany属性,其中包含一定数量的Stock符号,我想在网页上显示该关注列表。

static scaffold = User

def index() { 
    def stocks = StockSymbol.list(sort: "volume", order: "desc")
    def a = User.get(1)
    for(stock in a.watchlist)
    {
        println stock.name
        println stock.volume
        println stock.price

    }
    return [stocks: stocks]
}

到目前为止,这将把信息打印到控制台。无论如何我可以存储这些信息并像库存对象一样返回吗?

1 个答案:

答案 0 :(得分:1)

您可以将user实例传递给视图(index.gsp):

return [stocks: stocks, user: a]

并打印您想要的所有信息:

<body>
    .
    .
    .
    <p>Watchlist of user ${user}</p>
    <ul>
    <g:each var="stock" in="${user.watchlist}">
        <li>${stock.name} | ${stock.volume} | ${stock.price}</li>             
    </g:each>
    </ul>
    .
    .
    .
</body>

或者你可以像这样通过观察清单:

return [stocks: stocks, watchlist: a.watchlist]

顺便说一下 - 你可以在Groovy中省略return语句。