티스토리 뷰
SQL
SELECT id, name, content, regdate FROM guestbook ORDER BY id DESC limit :start, :limit; --LIMIT 시작점, 갯수
Controller
defaultValue="0"에 의해 처음은 0 번째부터 5개를 출력한다.
그 다음부터 pageCount에 따라 pageStartList에 5, 10, 15 등의 값이 들어갈 수 있다.
@Autowired
GuestbookService guestbookService;
@GetMapping(path="/list")
public String list(@RequestParam(name="start", required=false, defaultValue="0") int start, ModelMap model) {
// start로 시작하는 방명록 목록 구하기
List<Guestbook> list = guestbookService.getGuestbooks(start);
// 전체 페이지수 구하기
int count = guestbookService.getCount();
int pageCount = count / 5;
if(count % 5 > 0)
pageCount++;
// 페이지 수만큼 start의 값을 리스트로 저장
// 예를 들면 페이지수가 3이면
// 0, 5, 10 이렇게 저장된다.
// list?start=0 , list?start=5, list?start=10 으로 링크가 걸린다.
List<Integer> pageStartList = new ArrayList<>();
for(int i = 0; i < pageCount; i++) {
pageStartList.add(i*5);
}
model.addAttribute("list", list);
model.addAttribute("count", count);
model.addAttribute("pageStartList", pageStartList);
return "list";
}
JSP
페이지 번호를 누르면 URL에 ${pageIndex} 값을 전달하여 값을 시작점으로 해서 5개 만큼 결과를 보여준다.
<h1>방명록</h1>
<br> 방명록 전체 수 : ${count}
<br>
<br>
<c:forEach items="${list}" var="guestbook">
${guestbook.id}<br>
${guestbook.name}<br>
${guestbook.content}<br>
${guestbook.regdate}<br>
</c:forEach>
<br>
<c:forEach items="${pageStartList}" var="pageIndex" varStatus="status">
<a href="list?start=${pageIndex}">${status.index+1}</a>
</c:forEach>
<br>
<br>
<form method="post" action="write">
name : <input type="text" name="name"><br>
<textarea name="content" cols="60" rows="6"></textarea>
<br><input type="submit" value="등록">
</form>
참조
원본 소스 - https://github.com/seogineer/guestbook
https://www.boostcourse.org/web316/lecture/254352/
https://www.boostcourse.org/web316/lecture/254353/
https://www.boostcourse.org/web316/lecture/254354/
https://www.boostcourse.org/web316/lecture/254355/
https://www.boostcourse.org/web316/lecture/254356/
'Framework > Spring' 카테고리의 다른 글
Spring session으로 로그인 기능 구현 (0) | 2021.01.26 |
---|---|
트랜잭션(Transaction) (0) | 2021.01.10 |
Spring MVC 실행 과정 및 Controller 작성 (0) | 2021.01.06 |
Spring MVC 설정 (0) | 2021.01.06 |
Spring MVC (0) | 2021.01.06 |
댓글