作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个模拟服务,我已经创建了其余端点
/OrderLine/lists/_generic?limit=3&_paging=NEXT
在服务层我正在做
List<OrderLineDTO> listPOL = generateMockOrderLinesByCount(Constants.COUNT);
那么我如何在不使用存储库的情况下在此模拟数据中应用分页
我正在尝试首先将列表转换为页面,但似乎没有帮助,或者可能是我尝试的方向错误,请提出建议。
Page<OrderLineDTO> listToPage(List<OrderLineDTO> list, Pageable pageable) {
int start = (int) pageable.getOffset();
int end = (int) ((start + pageable.getPageSize()) > list.size() ? list.size()
: (start + pageable.getPageSize()));
Page<OrderLineDTO> page = new PageImpl<OrderLineDTO>(list.subList(start, end), pageable,
list.size());
return page;
}
我的最终 json 响应就像我需要根据通过限制添加字段,最大计数将是某个静态值,比如 100。因此,从总共 100 个字段中,这意味着 listPOL.size()=100,我需要根据给定的限制示例 10 获取此 100。这最多可以获取 10 次,即。 10 * 限制=10 =100
[
{
"_fields": {
//some data
}
},
{
"_fields": {
//some data
}
},
{
"_count": 3,
"links": [
{
"rel": "self",
"href": "http://localhost:8080/rest/orderLine/lists/_generic?_fields=_all&_limit=3",
},
{
"rel": "next",
"href": "http://localhost:8080/rest/orderLine/lists/_generic?_fields=_all&_limit=3&Company=32&orderLine=79",
},
{
"rel": "prev",
"href": "http://localhost:8080/rest/orderLine/lists/_generic?_fields=_all&_limit=3&Company=82&orderLine=23",
}
]
}
]
最佳答案
我找到了答案
Page<OrderLineDTO> toPage(List<OrderLineDTO> list, int pagesize, int pageNo) {
int totalpages = list.size() / pagesize;
PageRequest pageable = new PageRequest(pageNo, pagesize);
int max = pageNo>=totalpages? list.size():pagesize*(pageNo+1);
int min = pageNo >totalpages? max:pagesize*pageNo;
logger.info("totalpages{} pagesize {} pageNo {} list size {} min {} max {} ...........", totalpages,pagesize, pageNo, list.size(),
min, max);
Page<OrderLineDTO> pageResponse = new PageImpl<OrderLineDTO>(list.subList(min, max), pageable,
list.size());
return pageResponse;
}
并从您的服务调用您的方法
Page<OrderLineDTO> page = toPage(listPOL, pagesize), pageno));
关于java - 我如何在没有存储库的情况下实现分页休息 Spring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60521026/
我是一名优秀的程序员,十分优秀!