public Map<String, Object> getProfileSkillList(int currentPage) {
// 보여질 행의 갯수
int rowPerPage = 10;
// 페이지 계산(시작될 행의 인덱스)
int startIndex = (currentPage - 1) * rowPerPage;
// 마지막 페이지 계산
// 1. 보여질 테이블의 전체 행의 갯수
double rowsCnt = adminProfileSkillMapper.getSkillCnt();
// 2. 마지막 페이지
int lastPage = (int) Math.ceil(rowsCnt / rowPerPage);
int startPageNum = 1;
int endPageNum = (lastPage < 10) ? lastPage : 10;
// 동적페이지 구성 (7page 부터)
if (lastPage > 10 && currentPage > 6) {
startPageNum = currentPage - 5;
endPageNum = currentPage + 4;
if (endPageNum >= lastPage) {
startPageNum = lastPage - 9;
endPageNum = lastPage;
}
}
//HashMap<String, object> 여러 데이터타입을 담을 수 있는 Map<> 이라는 객체를 생성한다.
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("startIndex", startIndex);
paramMap.put("rowPerPage", rowPerPage);
// 화면에 보여질 로그인 이력 데이터
List<Map<String, Object>> profileSkillList = adminProfileSkillMapper.getProfileSkillList(paramMap);
log.info("자격증 전체 목록: {}", profileSkillList);
// controller에 전달될 data
paramMap.clear(); // map 객체안의 data 초기화
paramMap.put("lastPage", lastPage);
paramMap.put("profileSkillList", profileSkillList);
paramMap.put("startPageNum", startPageNum);
paramMap.put("endPageNum", endPageNum);
return paramMap;
}
@GetMapping("/adminProfileSkillList")
@SuppressWarnings("unchecked") // unchecked로 되어있으면 데이터타입을 체크 안한다는 뜻
public String profileSkillList(Model model, @RequestParam(value="currentPage", required=false, defaultValue="1") int currentPage) {
Map<String, Object> resultMap = adminProfileService.getProfileSkillList(currentPage);
List<Map<String, Object>> profileSkillList = (List<Map<String, Object>>) resultMap.get("profileSkillList");
int lastPage = (int) resultMap.get("lastPage");
int startPageNum = (int) resultMap.get("startPageNum");
int endPageNum = (int) resultMap.get("endPageNum");
model.addAttribute("title", "보유 기술 관리");
model.addAttribute("currentPage", currentPage);
model.addAttribute("lastPage", lastPage);
model.addAttribute("profileSkillList", profileSkillList);
model.addAttribute("startPageNum", startPageNum);
model.addAttribute("endPageNum", endPageNum);
return "admin/profile/adminProfileSkillList";
}
'코딩 국비수업들으며 느끼는점' 카테고리의 다른 글
팀플: 개발문서 작성_수행평가 (0) | 2023.08.02 |
---|---|
팀프로젝트 (0) | 2023.07.31 |
팀프로젝트: 수정처리, 삭제처리 진행중 (0) | 2023.07.19 |
이력서 쓰기 2 (0) | 2023.07.14 |
취업준비: 이력서(자기소개서) 쓰기 (0) | 2023.07.13 |