Controller:
@GetMapping("/list")
public TableDataInfo list(UserVO user) {
startPage();
List<? extends SysUser> list = userService.selectUserList(user);
return getDataTable(list);
}
说明:
1、startPage: 使用该方法必须在调用sql的紧挨着上面一句,不然分页无效 ;
而且该方法自带排序,如果sql中也加了order by排序,那么需要去掉方法中自带的排序,否则数据会乱;
2,new PageInfo出来的总条数不正确,和list的一致
原因应该是第一个list中包含查出来的总条数,而重新换取新的list中不包含,如果实际业务中必须要使用新的list换取新的list,怎么办呢?看下面
@Override
public PageInfo<SysUserVO> selectSysUserList(SysUser sysUser) {
/** 获取分页*/
PageDomain jsonPageDomain = TableSupport.buildPageRequest();
Integer pageNum = jsonPageDomain.getPageNum();
Integer pageSize = jsonPageDomain.getPageSize();
if(pageNum==null || pageSize==null){
throw new RuntimeException("未获取到分页参数值");
}
PageHelper.startPage(pageNum,pageSize);
List<Sysuser> users= sysUserMapper.selectUserList(sysUser);
PageInfo userInfo = new PageInfo<>(users);
// 转换为VO
List<SysUserVO> sysUserVOs= BeanUtil.copyToList(users, SysUserVO.class);
// 将封装后的列表放到分页对象中
userInfo .setList(sysUserVOs);
return userInfo ;
}
@GetMapping("/list")
public TableDataInfo list(SysUser sysUser)
{
PageInfo<SysUserVO> list = sysUserService.selectSysUserList(sysUser);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list.getList());
rspData.setTotal(list.getTotal());
return rspData;
}