[20221014/FRI] myweb - 답변형 게시판, 검색, 페이징, 답변수

kangsun·2022년 10월 14일
0

JSP

목록 보기
8/16

웹 sql문

  • insert 행추가 -> 회원가입
  • update 행수정 -> 정보수정
  • delete 행삭제 -> 회원탈퇴




9. 검색창


🚨 sql 조건절 주의사항

  • where subject like '% 파스타 %'
    파스타 사이에 공백 넣으면 공백까지 검색된다.
    ➡️ where subject like '%파스타%'
    공백 제거시켜줘야한다.


검색한 게시물만 노출되도록 만들기

(1) bbs의 bbsList의 함수이름을 list2로 변경해준다.

(2) DAO에서 list함수 똑같이 긁어와서 list2로 변경해주기 (매개변수도 추가)

(3) count2에서 [검색어가 존재한다면] if문 긁어서 가져오기






검색 후 글목록 누르면 전체 게시물 조회말고 검색한 게시물 그대로 살려놓는 방법

현재 검색했던 페이지 뒤로가기처럼 유지하는 방법

  • 원래 글목록을 누르게되면 검색한 값이 아닌 글 목록의 전체행이 조회되는데, 검색했던 페이지를 살리기 위해서는 따로 코드를 작성해줘야 한다. 자동으로 구성되는 페이지가 아니다.







칼럼과 검색어를 함께 가져가면 된다.

(1) bbsList.jsp에 bbsRead.jsp로 가는 링크에 칼럼+검색어

  • bbsList.jsp의 bbsRead.jsp?bbsno=<%=dto.getBbsno()%> 뒤에
    bbsno url 변수=값 + 칼럼col(제목내용) + 검색어word 값을 추가해주면 목록가기를 눌러도 검색한 값이 그대로 남아있다.

(2) url 확인



(3) 글목록 링크에 칼럼 + 검색명 추가 해준다.








수정 후 검색한 게시물 그대로 살려놓는 방법

(1)bbsRead.jsp에서 수정 버튼링크에 추가



(2) bbsUpdate.jsp에서 ssi.jsp include 됐는지 확인 (col, word 변수 들어가있음)



(3) bbsUpdate.jsp에서 hidden속성 추가하기

  • update페이지에서 updateproc으로 액션을 취한(페이지 이동하는) 부분을 확인

  • col과 word의 hiiden속성을 여기에 추가해준다.

(4) bbsUpdateProc.jsp에서 목록페이지 이동하는 부분 확인


  • col과 word 변수를 추가해준다.

(5) 게시물수정 → 목록 url 확인








10. 페이징


  • 한 페이지에 보통 10-15건 정도를 담아온다.
  • sql: rownum을 활용한다.


(1)~(2) cmd로 sql문 데이터 확인해보기 (rownum)

  • 순서가 뒤죽박죽 섞여 나온다.

(3) rownum 순서대로 출력하는 방법




(4) rownum 1~5 자르기 (1페이지)




(5) 줄번호 6~10조회 (2페이지) - 조회안됨.




(6) [해결방법] 줄번호 6~10조회 (2페이지)

줄번호가 있는 3)의 테이블을 한번 더 셀프조인하고, rownum칼럼명을 r로 바꾼다.



※ from으로 sql 작성시 *(별표)처리 주의할 점

from안에 작성하는 select 칼럼명은 노출되어야 한다.
저 부분에 노출되어 있으면 from바깥에 있는 select 칼럼명은 별을 사용할 수 있다.


※ sql문 where의 숫자는 변수처리 할 것이다.



(7) 페이징 + 검색

예) 제목에서 '파스타'가 있는 행을 검색해서 2페이지를(6행~10행) 조회하시오.

  • from-from 안에있는 부분에 where조건절만 추가해주면 된다.



(8) BbsDAO.jsp에서 페이징 함수 작성하기

  • 위에 있는 list2() 함수를 복사해서 list3()함수를 만들어준다.
  • where의 rownum을 변수처리하기 위해 startRow와 endRow 변수를 만들어준다.



  • if문으로 검색했을 경우의 sql문과 검색하지 않았을 경우의 sql문을 작성해준다.





(9) bbsList.jsp 한 페이지당 출력할 행의 개수 설정하기

  • 우리는 nowPage에 넣어줄 것이다.

bbsList.jsp 한 페이지당 출력할 행의 개수입력해주기



  • 페이지값을 넣지않으면 무조건 1페이지로 설정해준다.
  • 2페이지 5개씩 불러오는 것이다.

ArrayList<BbsDTO> list3() 이름 변경해주고 매개변수 nowPage, recordPerPage추가해준다.

매개변수 (칼럼명, 검색어, 현재페이지, 1페이지당 행의 개수)



BbsDTO.java에서 list3()에 현재페이지, 출력할 게시물 개수 변수 코드화 하기



✍️ 이부분 집에서 분석해보기

글목록 페이지 확인 (게시글 5개씩)

  • 5개씩 노출

  • 10개씩 노출






페이지 리스트

net.utility -> Paging.java에 스타일과 기능이 추가되어있다.



  • 페이지 숫자를 바꾸면
  • 페이지 스타일이 바뀐다.

Paging.java 분석


  • 페이지를 10개 까지만 노출한다는 뜻이다.


  • for문: 1에서부터 10페이지 노출


  • for문 안에 if문: 은 현재페이지엔 링크를 걸지않고 다른 페이지에 링크를 걸어준 코드이다.


  • 페이지 노출시킬 블록!


  • 이전페이지와 다음페이지




3페이지에서 게시물 누르고 글목록을 눌렀을 때 3페이지에 그대로 남아있도록 하는 방법

&nowPage=<%=nowPage%>를 추가해준다!

bbsList.jsp

bbsRead.jsp



웹브라우저 URL 확인



profile
코딩 공부 💻

0개의 댓글