jeesite
jeesite copied to clipboard
流程管理分页BUG和解决方法。
问题:流程管理页面默认上一页、下一页都可点击。无论实际数据多少,点击后显示为0条数据。没有分页效果。
分析:通过一路辛苦的debug,终于modules/act/service/ActTaskService.java中发现返回的分页对象Page属性为:
这里可以看到first、last、prev、next等属性都是0,再仔细看一个Page类是通过调用initialize()方法进行初始化参数,然而返回的page对象并没有调用该方法初始化。
解决:修改jeesite框架modules/act/service/ActTaskService.java源码,在
page.getList().add(new Object[]{processDefinition, deployment});
这行下面添加
page.initialize();
进行初始化,BUG得到完美解决。
List<ProcessDefinition> processDefinitionList = processDefinitionQuery.listPage(page.getFirstResult(), page.getMaxResults()); for (ProcessDefinition processDefinition : processDefinitionList) { String deploymentId = processDefinition.getDeploymentId(); Deployment deployment = repositoryService.createDeploymentQuery().deploymentId(deploymentId).singleResult(); page.getList().add(new Object[]{processDefinition, deployment}); //修复分页数据未初始化BUG page.initialize(); } return page;
添加后返回的数据: