Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/8월

22.08.04 - [ WAS ] 동적으로 게시판 목록 작성하기

giggs 2022. 8. 10. 11:24

 

-- Index --

 

 

DB에 저장된 데이터로 공지사항 게시판 보여주기

  • 1. 백엔드 작업 ( Controller - Service - DAO ) -  ( SELECT 작업 )
  • 2. 화면 작업 ( JSP )

 

 

 

 

지금은 공지사항에 우리가 작성한 내용 보여주는 걸로 되어있지만

이제 실제 DB에서 가져온 데이터로 가져오도록 수정하기

 

 

 

 

 


 

 

 

 

1. 백엔드 작업 ( Controller - Service - DAO )

 

1-1. 순서체크 겸 작업 흐름대로 세팅해 놓기

 

 


 

1-2 서블릿 부터 시작

 

 

#1. 화면으로부터 전달받은 data는 없으니 – data 꺼내고 뭉치는 작업은 생략

 


 

#2. 서비스 호출

  • 실행결과가 NoticeVo로 나오긴 할 텐데 객체 하나만 나오는 것이 아니다.
  • ArrayList<NoticeVo> 로 리스트에 담기
  • NoticeVo == 게시글 담고있는 객체 ( 게시글 1개마다 1개의 객체가 계속 생성될 것이다. )
  • ArrayList == 게시글담고있는 객체를 리스트 형태로 가지고 있다. 

 


 

#3 실행 결과에 따라 화면 선택

  • 여기서는 화면 선택 할 것은 없다.
  • 화면 선택이라는 작업명 보다 화면 만들기가 더 적절.
  • 보내기 전에 req객체에 게시글 객체 담아놓은 - voList 세팅해서 - forward 하기

 

 

 

 

 

 

 


 

 

1-3. 서비스 레이어 시작

  • # 비즈니스 로직 할거 없으니 패스
  • # DAO 호출
  • #실행 결과 리턴
  • select 할 거니까 커밋/롤백은 필요 없다.
  • close 해주기 위해 try/catch/finally 작성

 

 

 

 


 

1-4. DAO 레이어 시작

 

 

 

 

#1. 최신 글 먼저 보이게 해 주기 - ORDER BY ENROLL_DATE DESC

 


 

#2. 날짜 가져오는 부분 수정 

  • 날짜를 String으로 가져왔을 때 밀리초까지 다 나온다 이거 해결해주기 – SQL에서 처리
  • SELECT 문에서 수정 ---  #별칭은 key값에 맞춰 꼭 부여하기

 

 

 


 

 

#3. 작성자 번호가 아닌 작성자 닉네임을 표시해주도록 해주기

  • 현재 작성자 번호를 보여주고 있는데, join을 이용해서 닉네임 보여주기
  • join문 사용할 경우 같은 칼럼 있는 경우 방지 필요 --- 어느 테이블의 칼럼인지 표시 필요
  • N.WRITER는 회원번호로 숫자 보여주는 거 필요 없다 – 없애버리고 JOIN 한 M.NAME 사용
  • 별칭으로 WRITER 해주어서 JAVA 쪽에서 조회할 때 key값으로 - WRITER 잘 가져가도록 해주기

 

 

 

 


 

 

#4. 게시글은 한 번 가져오고 끝이 아니다. 게시글 있는 만큼 가져올 수 있도록 처리하기.

  • while(rs.next()) {} - 다음 실행결과 있는 경우에 계속 반복되도록 if대신 while로!

 


#5. 실행결과인 resultSet을 자바 객체로 변환해주는 과정 필요

  • 객체 생성 - vo = new NoticeVo();
  • 객체에 data 담기 - vo.set() 작업

 

 

 

 

 

 

 


 

 

 

 

 

 

2. 화면 작업 ( JSP 파일 )

 

 

2-1.  컨트롤러에게 forward로 전달받은 결과물 ArrayList 가져오기

  • voList 에는 게시글 data 담고 있는 객체들이 한 칸 한 칸 담겨있다.

 

 

 


 

2-2. 가져온 객체에서 data 출력해주기

 

 

 

여기 내용을 동적으로 만들어주면 된다..

얼만큼?

voList.size() 만큼 ( = 게시글 수 만큼 )