通常,Grails 生成的 Controller 列表方法中有以下最后一行:
[userInstanceList: User.list(params), userInstanceTotal: User.count()]
如果我想通过特定标准限制用户,它看起来像
[userInstanceList: User.list(params) {
ilike('login', '%test%')
}, userInstanceTotal: User.count() {
ilike('login', '%test%')
}]
但这违反了 DRY 原则 - 重用标准闭包的最佳方法是什么?
最佳答案
来自标准生成器的分页结果(结果类为 PagedResultList )有一个属性 totalCount
,您可以像调用 count()
一样使用该属性按照相同的标准:
def userInstanceList = User.createCriteria().list(params) {
ilike 'login', '%test%'
}
[userInstanceList: userInstanceList, userInstanceTotal: userInstanceList.totalCount]
关于grails - 在 Grails Controller 中重用 Criteria,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092857/