bookListcontroller에서 서비스 연결
뷰를 표현하기 위해 list.jsp 파일로 넘어간다.
책의 리스트를 나타내기 위해 c태그로 tr을 묶어준다.
bookCode로 내림차순 하기 위해 bookDatoImple 에서 order by 해준다.
dto 안에 PageDto.java를 만들어준다.
그리고 dto 안에 Criteria.java도 만들어준다.
BookListController.java에 페이지를 출력하기 위해 파라미터를 받을 코드를 작성한다.
bookDaoImpl 에 COUNT 와 selectAll 을 작성한다.
BookDao에 예외를 걸어준다.
BookServiceImple에 리스트를 출력할 코드 작성
실행시키면 콘솔창에 이렇게 출력이 된다.
여러 개의 값들을 던기지 위해서는 list로 받는 것보단 Map으로 받는 것이 더 좋다.
BookServiceImpl 에 list를 Map으로 바꿔 줬다.
BookService에도 list를 map으로 바꿔준다.
BookListController도 list를 map으로 바꿔준다.
view의 list.jsp로 가서 전체 게시물 개수, 전체 페이지 개수, 현재 페이지를 확인할 수 있는 코드를 작성한다.
프로젝트를 실행하면 이렇게 출력된다.
list.jsp에 prev와 next의 paging을 c:if 태그로 감싸준다.
paging으로 시작값과 끝값을 나타내본다.
페이지 이동이 가능하도록 a태그의 href 주소를 작성한다.
그리고 BookListController에서 else를 작성한다.
6페이지 버튼을 누르니 6페이지로 넘어간 것을 볼 수 있다.
다음 페이지 이동 버튼을 확성화 시키려고 한다.
다음페이지 값 계산하기 위해 list.jsp로 가서 next의 a태그의 href에 페이지 주소를 적는다.
pagePerBlock은 pageDto에서 지정한 한번에 나타낼 페이지 수이다.
버튼을 누르니까 다음 페이지 블럭으로 넘어간 것을 확인 할 수 있다.
이번에는 이전 페이지 이동 버튼을 확성화 시킨다.
list.jsp에서 serarch-block을 수정하고 추가 작성해준다.
해당 키워드와 타입에 맞는 게시물을 가져오는 작업을 할 것이다.
BookListController 에서 if문을 넣어준다.
그리고 criteria에 생성자를 추가시켜준다.
bookDao에서 다 예외를 던져야 한다.
검색창에 1을 넣으면 전체 게시물 개수도 줄고 bookCode에 1이 들어간 게시물만 나오게 된다.
하지만 다음 페이지로 넘어가면 조건절이 풀리므로 list.jsp에서 풀리지 않도록 작성 할 것이다.
이렇게 하면 2페이지로 넘어가도 조건절이 풀리지 않는 것을 확인 할 수 있다.
하지만 다음 블럭으로 넘어가거나 이전 블럭으로 넘어가면 조건절이 풀리므로 위에서 작성한 &type=${pageDto.criteria.type}&keyword=${pageDto.criteria.keyword} 를 pageNo뒤에 붙여주면 된다.
그러면 페이지 블럭이 넘어가도 조건절이 풀리지 않는다.
'IT수업 > JSP_SERVLET' 카테고리의 다른 글
IT 수업 19주차 (108) 톰캣 서버 배포 (1) | 2024.04.29 |
---|---|
IT 수업 18주차 (106) MVC 패턴 3 (도서 add) (0) | 2024.04.22 |
IT 수업 18주차 (105) MVC 패턴 2(코드) (0) | 2024.04.22 |
IT 수업 18주차 (104) MVC 패턴 1 (0) | 2024.04.22 |
IT 수업 17주차 (103) 서블릿에서 DB연결 (1) | 2024.04.19 |