我已将此添加为@Configuration
@Configuration
public class RespositoryConfiguration {
@Bean
public PageableHandlerMethodArgumentResolverCustomizer customize() {
return p -> {
p.setOneIndexedParameters(true);
};
}
}
这确实将 page 中的 number 设置为 1 到默认存储库。
"page": {
"size": 5,
"totalElements": 11,
"totalPages": 3,
"number": 1
}
但是当使用自定义控制器获取时,它不会将数字设置为 1。
这是我的控制器:
@GetMapping
public ResponseEntity<ResponseMessage<?>> getAll(
Pageable pageable,
PagedResourcesAssembler assembler,
PersistentEntityResourceAssembler resourceAssembler) throws Exception {
System.out.println(pageable.getPageNumber());
ResponseMessage responseMessage = itemService.findAll(pageable, assembler, resourceAssembler);
return new ResponseEntity<ResponseMessage<?>>(responseMessage, HttpStatus.OK);
}
这是我的服务:
public ResponseMessage findAll(Pageable pageable, PagedResourcesAssembler assembler,
PersistentEntityResourceAssembler resourceAssembler) throws Exception {
Page<Item> itemList = itemRepository.findAll(pageable);
Page<ItemDto> itemDtoListResponse = itemList.map(itemMapper::toDto);
ResponseMessage responseMessage = ResponseMessage.withResponseData(assembler.toModel(itemDtoListResponse),
"Item List", "Info");
return responseMessage;
}
结果还是这样:
"page": {
"size": 5,
"totalElements": 11,
"totalPages": 3,
"number": 0
}
我的控制器或服务中缺少什么?