若依代码生成 会自带/list路径下的自动分页
如果当我们想在列表中返回更多的信息 需要修改这个list方法
结合网上查询的内容 做以下分析:
重点还是
return getDataTable(list);
需要进一步debug进去查看
protected TableDataInfo getDataTable(List<?> list)
{
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
}
一直追下去到PageSerializable方法
public PageSerializable(List<? extends T> list) {
this.list = list;
if (list instanceof Page) {
this.total = ((Page)list).getTotal();
} else {
this.total = (long)list.size();
}
}
重点是上面代码中的 this.total = ((Page)list).getTotal(); 方法
增加属性之后会走下面的else方法 导致返回给前端的只有10条数据
下面是我的解决方法
startPage();
List<old> oldList = oldService.selectOldList(equipment);
//这里底层逻辑获取就不过多赘述
List<newVo> newListVo = newService.getNewVoList(list);
PageInfo<old> pageInfo = new PageInfo<>(oldList );
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(HttpStatus.SUCCESS);
tableDataInfo.setRows(newListVo );
tableDataInfo.setTotal(pageInfo.getTotal());
return tableDataInfo;
这里解决的方式 还是新建一个TableDataInfo 返回
通过setRows方法返回我们新vo的List集合
然后将setTotal(pageInfo.getTotal())获取旧实体类的记录总数
上面就是曲线救国 实现了在原本list方法集合添加属性之后能够正常返回列表