게시판 만들기 - (4)

2022. 10. 8. 14:32Dev.Program/JSP & Javascript

728x90

<앞으로 할 것들…. > jQuery → MVC 패턴 → SPRING → Python, R …

 

< 프로젝트 - 답글 >

답글을 할 수 있으면 대댓글까지는 할 수 있음! (로직이 같기때문에)

테이블을 분리하지 않고 column 을 추가함(3개)

  • 글번호는 기준으로만 쓰기 때문에 답글도 그냥 추가로 번호 달아주면 됨 ( 답글그룹 번호로 그룹을 묶을거기 때문에! )
  • 글번호(기준)으로는 최근글 정렬을 못함! 이제는 답글그룹 번호로 알 수 있다!
  • 답글 그룹도 글번호기준 + 일반글을 기준으로 잡기때문에 제목2(일반글)의 답글그룹은 2가 아니라 4로 잡아야함

⇒ 최신글의 순서는 이런식으로 보여지게 해야함

⇒ 답글그룹별로 내림차순 정렬 → 그룹별로 묶어놓으면 글번호 기준으로 오름차순 정렬

 

>> 이렇게 하려면 DB에 답글 관련 열을 추가해야함 (답글그룹, 답글들여쓰기, 답글순서)

<BoardDAO.java>

→ insertBoard() 메서드 내부

  • sql문에 새로만든 컬럼들 추가해주기

  • 밑에도 추가!
  • 답글그룹 = 일반글 글번호와 일치하게 만들고, 답글 들여쓰기와 그룹내 순서는 0으로 맞춰놓음

 

→ getBoardList() 메서드 내부

  • sql문에 답글 그룹 순으로 내림차순 & 중복일 경우 시퀀스 순으로 오름차순
  • select * from board order by re_ref desc, re_seq asc limit ?,?



<content.jsp>

  • 글수정버튼 복사해서 답글쓰기 버튼 만들기
  • num 값 re_ref 값 re_lev 값 re_seq 값 같이 들고가기 (pageNum 값도 들고가도 괜찮다! ⇒ 지금은 연습이기때문에 일단 지우기)

 

<BoardBean.java>

  • re_ref 값 re_lev 값 re_seq 값 추가해주기!

 

<BoardDAO.java>

  • getBoardList() 메서드

  • 답글 관련 추가해주기

 

writeForm.jsp & writePro.jsp 복사해서 reWriteForm.jsp &reWritePro.jsp 만들기

<reWiteForm.jsp>

  • 바디 부분에 받아오는 파라미터 값 적어주기
  • Pro로 넘길때도 가져가야하기 때문에 값을 넘겨준다(근데 눈에 안보이게 가져가야하기 때문에 hidden으로 값을 넘겨줌)

<reWritePro.jsp>

  • 답글 관련 파라미터 가져오기
  • BoardBean에도 담아주기!
  • reInsertBoard() 메서드 호출할 것! (아직 안만들어줘서 빨간줄 → insertBoard() 비슷함)

 

<BoardDAO.java>

reInsertBoard() 메서드

  • insertBoard() 메서드에서 이 부분만 변경

 

> 답글 달아보기 & 답글의 답글 달아보기

 

>> 이제 여기서 답글은 들여쓰기가 되도록 추가할 거!

  • 들여쓰기를 추가해서 일반글과 답글이 구분되도록 해준다.
  • 일반글은 들여쓰기가 0이고 나머지는 0보다 크다.
  • &nbsp; 로 띄어쓰기 해주던지, 이미지를 흰색 이미지로 추가해주든지!
  • 들여쓰기 레벨1 이면 이미지 크기가 1픽셀, 들여쓰기 레벨2면 2픽셀 이런식으로 이미지가 커지도록(들여쓰기 된 것 처럼 보이게)
  • board에 이미지 추가해주기

 

<list.jsp>

  • 이 부분 추가해주기
  • getBoardList 에서 level 값 받아와야함

 

  • 너비를 조절해서 답글과 답글의답글도 구분해준다
  • 너비를 조절하면 높이도 같이 커지기 때문에 높이값은 고정시켜놓음
  • 답글 1과 답글 1-1 구분!

 

> 근데 여기서 문제점! 일반글1에 대한 답글 2 달아보기

  • 이렇게 나옴ㅜ 답글2 위치가 이상합니다!



글번호(기준) 제목 답글그룹 답글들여쓰기 답글순서
4 제목2 (일반글) 4 0 0
5     ㄴ답글2 4 0+1 = 1 0+1 = 1
1 제목1 (일반글) 1 0 0
6     ㄴ답글2(NEW!!!) 1 0+1 = 1 0+1 = 1
2     ㄴ답글1 1 0+1 = 1 0+1 ⇒ +1
순서재배치
3       ㄴ답글1-1 1 1+1 = 2 1+1 ⇒ +1
순서재배치
  • 이렇게 달려야 함! (우리가 원하는 거!)
  • 순서재배치는 답글이 새로 생성될 때에만 순서가 재배치되도록 설정

 

<BoardDAO.java>

reInsertBoard() 메서드

  • 추가해주기!
  • 이런식으로 제자리 찾아감




## 페이지 하나하나 잘라오는거(페이징) + 답글다는거 로직 기억해두기

⇒ 답글은 요즘 잘 안해서 페이징이 제일 중요!



728x90

'Dev.Program > JSP & Javascript' 카테고리의 다른 글

JQuery - (2)  (1) 2022.10.08
JQuery - (1)  (1) 2022.10.08
게시판 만들기 - (3)  (1) 2022.10.08
게시판 만들기 - (2) WAR Export / Import  (0) 2022.10.08
게시판 만들기 - (1)  (1) 2022.10.08