이전 시간에는 로그인/로그아웃 기능을 구현 해보았습니다.
그럼 이번시간에는 본격적으로 게시판을 만들어 보도록 하겠습니다.
먼저 게시판에서 글을 작성할 경우 작성한 글의 목록을 띄우는 기능 먼저 구현 하도록 하겠습니다.
ERD 및 DDL 확인
1) 파일 및 패키지 생성
1-1) BoardController.java 파일 생성
6행 : @Controller : 컨트롤러 객체로써 서블릿 컨테이너에 Bans 객체로써 등록 해줍니다.
7행 : @RequestMapping : view 의 경로를 지정해줍니다.
1-2) BoardService.java 파일 생성
8행 : @Service : 서비스 객체로써 루트 컨테이너에 Bans 객체로써 등록해줍니다.
11행 : @Autowired : 필요한 의존 객체의 “타입"에 해당하는 빈을 찾아 주입한다.
1-3) BoardSQLMapper.java 파일 생성
1-4) BoardSQLMapper.xml 파일 생성
5행 : SQL Mapper 경로 설정이다.
1-5) BoardVo.java 파일 생성
12~27행 : DB 필드들을 선언하고 각 제약조건을 설정해준다
45~99행 : Getter/Setter를 만든다. Alt+Shift+S를 눌러서 Generate Getters and Setters로 쉽게 만들 수 있다.
VO는 Value Object의 약자로써 read only 속성을 가진다. DB의 필드들을 Getter/Setter 메소드 조합으로 형성된 클래스이다. DB의 정보를 담고 보내주는 역할을 한다. DTO라는 이름으로 사용하는 사람들도 있다. VO와 DTO는 거의 비슷한, 똑같은 개념이긴 하다. 두 개를 구분하라면 구분할 순 있지만, 비슷한 개념이다. 불변성이냐 아니냐의 차이이다. VO나 DTO를 쓰지않고 Map만 사용하는 사람들도 있다. 편한 걸로 쓰면 된다.
1-6) 최종 디렉토리
파일을 모두 생성 하였다면 위와 같은 구조로 디렉토리 구조가 생성 되어있어야 한다.
2) BoardController.java("mainPage")
11행 : @RequestMapping : viewName을 mainPage로 설정한다.
3) mainPage.jsp
4) 확인
이렇게 화면 페이지가 뜨면 성공적이다 !!
5) BoardController("mainPage")
26행 : 모델에 dataList 의 데이터를 추가해준다.
6) BoardService.java
29행 : for : 쿼리에서 게시글을 불러와서 boardVo 변수에 값을 추가 해준다.
32행 : 쿼리에서 유저넘버로 해당하는 유저의 정보를 불러온다.
35행 : boardVo 라는 키값을 가지고 boardVo라는 벨류값을 map 변수에 추가한다.
36행 : userVo 라는 키값을 가지고 userVo 라는 벨류값을 map 변수에 추가한다.
38행 : map에 추가된 데이터를 dataList 변수에 추가한다.
7) BoardSQLMapper.java
9행 : 쿼리에서 게시글을 불러와서 ArrayLIst 로써 반환한다. (한개의 행을 경우 단일행을 반환)
8) UserSQLMapper.java
9) BoardSQLMapper.xml
novice_board 테이블의 데이터를 board_no 내림차순 순서대로 정렬해서 값을 불러온다.
10) UserSQLMapper.xml
11) mainPage.jsp
76행 : <c:forEach items="${dataList }" var="data"> : Model에 담겨진 dataList의 값을 data 라는 변수의 이름으로써 값을 사용한다는 뜻
80~104행 : 비밀글 노출 여부에 관한 부분이다 로그인을 했는지 안했는지 로그인을 했다면 본인인지 아닌지 구분하기 위한 구문이다.
122행 : c:if item="${!empty sessionUser }"> : 로그인 여부를 체크한다. 로그인 햇다면 글쓰기 버튼을 노출 시키고 아니라면 노출시키지 않는다.
11) 실행화면
로그인 하지 않고 목록페이지를 조회하게 되면 글쓰기 버튼이 안보이는거를 확인 할 수 있다.
로그인을 했다면 글쓰기 버튼이 정상적으로 노출된다.
다음시간에는 인터셉터를 이용한 로그인 여부 체크 기능을 구현해보자
'웹개발 > 스프링' 카테고리의 다른 글
7. 게시판 만들기 - 게시글 작성 (0) | 2022.09.17 |
---|---|
6. interceptor 로그인 처리 (0) | 2022.09.17 |
4. 로그인/로그아웃 기능 (0) | 2022.09.17 |
3. Ajax를 이용한 아이디 중복체크 (0) | 2022.09.16 |
2. Validator를 이용한 회원가입 페이지 만들 (0) | 2022.09.16 |