render(view: "index", model: [users: users, userTotal: 4])
您已将 userTotal 硬编码为 4。paginate 标记默认为每页 10 个项目,因此不需要分页。
如果您担心分页,那么User.findAll() 可能是个坏主意,因为它会返回所有数据。
默认脚手架会做这样的事情,这是一个更好的主意...
控制器动作:
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond userService.list(params), model:[userCount: userService.count()]
}
GORM 数据服务:
import grails.gorm.services.Service
@Service(User)
interface UserService {
User get(Serializable id)
List<User> list(Map args)
Long count()
void delete(Serializable id)
User save(User user)
}
相关普惠制:
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main" />
<g:set var="entityName" value="${message(code: 'user.label', default: 'User')}" />
<title><g:message code="default.list.label" args="[entityName]" /></title>
</head>
<body>
<a href="#list-user" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div class="nav" role="navigation">
<ul>
<li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
<li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
</ul>
</div>
<div id="list-user" class="content scaffold-list" role="main">
<h1><g:message code="default.list.label" args="[entityName]" /></h1>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<f:table collection="${userList}" />
<div class="pagination">
<g:paginate total="${userCount ?: 0}" />
</div>
</div>
</body>
</html>
如果您真的不想使用服务(强烈建议您这样做),那么您可以更改控制器以执行类似的操作...
params.max = Math.min(max ?: 10, 100)
respond User.list(params), model:[userCount: User.count()]