В моем недавнем проекте у меня есть требование отправить нумерованный список.Я сделал нумерацию страниц в моем предыдущем проекте.Тогда я не столкнулся с какой-либо ошибкой.Но сейчас я не могу сделать нумерацию страниц в своем недавнем проекте.Я не знаю, что происходит не так.Я предоставляю свой код шаг за шагом.
Это мой класс контроллера, который возвращает пользовательский класс страницы
@GetMapping(value = "")
public CustomerResponsePage getCustomerList(@RequestParam Long agentId,
@RequestParam(value = "page", defaultValue = "0") Integer page) {
if (agentId == null)
throw new NullValueException("Null value received for agentId");
return customerService.getCustomersOfAgent(agentId, page);
}
Мой метод обслуживания
@Override
public CustomerResponsePage getCustomersOfAgent(Long agentId, Integer page) {
User agent = userService.read(agentId);
if (agent == null)
throw new EntityNotFoundException("Agent with this id is not found");
if (agent.getReferenceNo() == null)
throw new EntityNotFoundException("No reference found for this agent");
Page<User> customers = userRepository.findByReferenceNo(agent.getReferenceNo(),
new PageRequest(page, PageAttr.PAGE_SIZE));
List<UserDTO> dtoList = new ArrayList<>();
for (User user : customers) {
dtoList.add(customerMapper.customerResponseMapper(user));
}
System.out.println("Page is " + customers.getContent());
System.out.println("List is " + dtoList);
return new CustomerResponsePage(dtoList, customers);
}
Мой пользовательский класс страницы
public class CustomerResponsePage implements Page {
private List<UserDTO> content;
private Pageable pageable;
private boolean last;
private Integer totalPages;
private Long totalElements;
private Integer size;
private Integer number;
private Integer numberOfElements;
private boolean first;
private Sort sort;
public CustomerResponsePage(List<UserDTO> content, Page page) {
this.content = content;
this.pageable = page.getPageable();
this.last = page.isLast();
this.totalPages = page.getTotalPages();
this.totalElements = page.getTotalElements();
this.size = page.getSize();
this.number = page.getNumber();
this.numberOfElements = page.getNumberOfElements();
this.first = page.isFirst();
this.sort = page.getSort();
System.out.println("content is " + content.toString());
System.out.println("Page value is " + page.getTotalElements());
System.out.println("Content is " + page.getContent());
}
public void setContent(List<UserDTO> content) {
this.content = content;
}
@Override
public Pageable getPageable() {
return pageable;
}
@Override
public int getTotalPages() {
return this.totalPages;
}
@Override
public long getTotalElements() {
return this.totalElements;
}
@Override
public Page map(Function function) {
return null;
}
@Override
public int getNumber() {
return this.number;
}
@Override
public int getSize() {
return this.size;
}
@Override
public int getNumberOfElements() {
return this.numberOfElements;
}
@Override
public List getContent() {
return this.content;
}
@Override
public boolean hasContent() {
return this.content.size() > 0;
}
@Override
public Sort getSort() {
return this.sort;
}
@Override
public boolean isFirst() {
return this.first;
}
@Override
public boolean isLast() {
return this.last;
}
@Override
public boolean hasNext() {
return !this.isLast();
}
@Override
public boolean hasPrevious() {
return !this.isFirst();
}
@Override
public Pageable nextPageable() {
return null;
}
@Override
public Pageable previousPageable() {
return null;
}
@Override
public Iterator iterator() {
return null;
}
}
Когда я нажимаю на почтальона, я получаю сообщение об ошибке типа
И в консоли я получаю сообщение об ошибке типа
Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: (was java.lang.NullPointerException); nested exception is com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.sweetitech.capitalexpress.pageable.CustomerResponsePage["empty"])]
Обратите внимание, что внутри CustomerResponsePage
printметод работает.