PageHelper 페이지 총수 가 맞지 않 습 니 다. 돌아 오 는 총 수 는 항상 현재 페이지 수 와 같 습 니 다.
앞에서 말 했 듯 이 며칠 전에 페이지 를 나 누 어 큰 머리 를 만 났 는데 큰 사람 은 나 에 게 PageHelper 로 쓰 라 고 했 고 다른 항목 을 보고 참고 하 라 고 했다.
결국 차 가 뒤 집 혔 어!!
원래 코드
public Result<PageInfo<TestVo >> queryList(Integer pageIndex, Integer pageSize){
// pageIndex
// pageSize
PageHelper.startPage(pageIndex, pageSize);
//
List<TestEntity> list = xxxService.findXXXList();
//entity Vo
List<TestVo > voList = new ArrayList<>();
for(TestEntity entity : list){
TestVo testVo = new TestVo();
BeanUtils.copyProperties(entity, testVo );
voList.add(vo);
}
PageInfo<TestVo > pageInfo = new PageInfo<>(TestVo );
return Result.success(pageInfo);
}
그래서 문 제 는 돌아 오 는 총 페이지 수 는 80 개 라 는 것 이다. 그러나 현재 페이지 는 20 개, 총 20 개 에 불과 하 다.
조사 결과 에 따 르 면 저 는 큰 놈 의 쓰기 방법 을 참 고 했 습 니 다. 이상 이 없습니다. 문법 (SQL 문 구 를 포함) SQL 문 구 를 가 져 가서 모든 결 과 를 찾 았 습 니 다.
어떤 pom 파일 등 기본 설정 이 있 는 지 에 대해 서 는 PageHelper 를 호출 한 적 이 있 기 때 문 입 니 다.
인터넷 블 로 그 를 둘 러 보 세 요. 좋 은 녀석, 원래 문 제 는 enity 에서 Vo 로 전환 하 는 단계 에 있 었 습 니 다.
수정 후
public Result<PageInfo<TestVo >> queryList(Integer pageIndex, Integer pageSize){
// pageIndex
// pageSize
PageHelper.startPage(pageIndex, pageSize);
//
List<TestEntity> list = xxxService.findXXXList();
//add
PageInfo<TestEntity> page = new PageInfo<>(list);
//entity Vo
List<TestVo > voList = new ArrayList<>();
for(TestEntity entity : list){
TestVo testVo = new TestVo();
BeanUtils.copyProperties(entity, testVo );
voList.add(vo);
}
PageInfo<TestVo > pageInfo = new PageInfo<>(volist);
//entity page vo page
BeanUtils.copyProperties(page ,pageInfo );
return Result.success(pageInfo);
}
요약 1) 우선 PageHelper. startPage (pageIndex, pageSize);페이지 인 스 턴 스 를 되 돌려 주 는 것 입 니 다. 그 안에 총수, 현재 페이지 수량 등 정보 가 포함 되 어 있 습 니 다.
2)List list = xxxService.findXXXList(); 이 list 는 페이지 플러그 인 을 통 해 처 리 된 결과 겉 으로 는 List 형식 이 고 실제로는 Page (extends ArrayList) 입 니 다.
PageInfo 원본 코드:
public PageInfo(List<T> list) {
this(list, 8);
}
public PageInfo(List<T> list, int navigatePages) {
super(list);
this.isFirstPage = false;
this.isLastPage = false;
this.hasPreviousPage = false;
this.hasNextPage = false;
// instanceof
if (list instanceof Page) { // !!!
Page page = (Page)list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.size = page.size();
if (this.size == 0) {
this.startRow = 0;
this.endRow = 0;
} else {
this.startRow = page.getStartRow() + 1;
this.endRow = this.startRow - 1 + this.size;
}
} else if (list instanceof Collection) {
this.pageNum = 1;
this.pageSize = list.size();
this.pages = this.pageSize > 0 ? 1 : 0;
this.size = list.size();
this.startRow = 0;
this.endRow = list.size() > 0 ? list.size() - 1 : 0;
}
if (list instanceof Collection) {
this.navigatePages = navigatePages;
this.calcNavigatepageNums();
this.calcPage();
this.judgePageBoudary();
}
}
3) entity 형식의 list 를 vo 형식의 list 로 바 꾸 고 PageInfo 에 넣 으 면 페이지 정 보 를 잃 어 버 립 니 다.
참고 문헌 1: PageInfo 가 되 돌아 오 는 totalk 이 정확 하지 않 습 니 다. list 의 size 와 같 습 니 다. 2: pageInfo 의 totalk 속성 은 현재 페이지 기록 수 입 니 다. totalk 을 총 기록 수로 설정 하 는 방법 을 설정 합 니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.