如何在Grails中逆顺序遍历对象列表



从在我的用户域模型中按顺序排列的GORM数据库对象列表中,我想将它们按顺序排列(即,在视图中按相反顺序排列)。例如,要从数据库中获取用户的最新图书,但将它们以相反的顺序插入Dom中,即最新图书最后出现的位置。

如何在GSP中执行反向操作?

控制器:

def books = user.books

GSP:

<g:each in="${books}" var="book">${book}</g:each>

您可以像这里描述的那样对关系集合使用默认排序。如果你这样定义:

class User {
    …
    static hasMany = [books: Book]
    static mapping = {
        books sort: 'publishDate', order: 'asc'
    }
}

集合将按数据库级别排序

<g:each in="${books.reverse()}" var="book">${book}</g:each>

编辑

忘乎所以了:)。我建议:

控制器中的def books = user.books?.reverse()

(关注点分离,视图不应该有操纵model的逻辑)

更新:

如果booksUser中没有排序,则需要显式排序。

def newestBooks = user.books?.asList().sort{it.publishDate}

使用

进行反向排序

def newestBooks = user.books?.asList().sort{-it.publishDate}

相关内容

  • 没有找到相关文章

最新更新