从在我的用户域模型中按顺序排列的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
的逻辑)
更新:
如果books
在User
中没有排序,则需要显式排序。
def newestBooks = user.books?.asList().sort{it.publishDate}
使用
进行反向排序 def newestBooks = user.books?.asList().sort{-it.publishDate}