controller:
@restcontroller @requestmapping("/api") public class testresource { @requestmapping(value="/test", method = requestmethod.get, produces = mediatype.application_json_value) public responseentity<list<integer>> test(pageable pageable) { list<integer> init = new arraylist<>(arrays.aslist(new integer[]{1,2,3,4,5,6,7,8,9,10})); return responseentity.ok(new pageimpl<>(init, pageable, init.size()).getcontent()); } }
request /api/test?page=1&size=2 returns entire init list (from 1 10).
logs:
enter: com.test.rest.testresource.test() argument[s] = [page request [number: 1, size 2, sort: null]]
how make work?
as understood, page works repositories only, found solution:
use org.springframework.beans.support.pagedlistholder
public responseentity<list<integer>> getintegers(pageable pageable) { list<integer> init = new arraylist<>(arrays.aslist(new integer[]{1,2,3,4,5,6,7,8,9,10})); pagedlistholder<integer> holder = new pagedlistholder<>(init); holder.setpage(pageable.getpagenumber()); holder.setpagesize(pageable.getpagesize()); return responseentity.ok(holder.getpagelist()); }
request /api/test?page=1&size=2 returns [3,4]
Comments
Post a Comment