해당 프로젝트에서 총 3가지의 게시판을 만들었는데요~?

 

기존의 자유게시판이 있었고,

코딩게시판, 낚시게시판을 생성하기 위해서 추가해야 할 것들을

정리 해보았습니다.

 

1. DB 테이블 추가

 

2. vo 추가

 

3. mapper 추가

 

- 각 mapper id값 중복 되지 않도록 변경

- 각 mapper resultType, parameterType 해당 VO로 변경

- 각 mapper 해당 테이블로 변경

- root-context.xml에 mapper 추가

 

4. DAO추가(interface, implement)

- 그 안에 임포트 하는 VO 해당 VO로 수정

- NS 수정

 

5. Service 추가(interface, implement)

- 그 안에 임포트하는 VO 수정

- NS 수정

 

6. Controller 추가

- @RequestMapping("/board/*")추가

    - 코딩게시판은 Codingboard 이런식으로!

- logger.class 수정

- import 하는 service 수정

- 각 메서드들 vo 수정

- return 값 해당 게시판으로 수정

 

7. view 폴더 추가

- 각 페이지에서 변경할 값들 변경

 

지금까지의 기능 구현을 하면서 디자인을 하나도 입히지 않았는데요

부트스트랩을 이용해 

네비게이션바와 전체 디자인을 수정했습니다.

 

어렵지 않기 때문에 과정은 생략하고 

 

필요하신분들은 github를 보고 하시면 되겠습니다!

 

https://github.com/jinyeanseok/blog/tree/master/blog/src/main/webapp/WEB-INF/views/board 

 

jinyeanseok/blog

blog project. Contribute to jinyeanseok/blog development by creating an account on GitHub.

github.com

 

회원

 

1. 회원가입

 

 

2. 로그인

 

 

 

3. 회원 수정

 

 

4, 회원 삭제

 

 

각 게시판 공통

 

1. 게시판 페이지 리스트

 

 

 

2. 글작성

 

 

 

3. 글 상세보기(댓글포함)

 

 

 

4. 글 수정

 

 

 

5. 글 삭제

 

 

 

6. 댓글 수정

 

 

 

7. 댓글 삭제

 

 

 

 

이렇게 프로젝트를 마무리 하는데요

 

이후에 천천히 다음 기능을 구현할 예정입니다.

추가해야 할것

1. 상세보기 페이지에서 퀵버튼(리모콘)

  - 맨위로, 맨아래로
  

2. 글 추천 공감


3. 아이디 비밀번호 찾기 

- 아이디는 이메일 입력하면 아이디 보여줌
- 비밀번호는 이메일로 임시비밀번호 발급


4. 자동로그인

- 쿠키가 필요할거같다



5. 모든 게시판 통틀어서 최근 게시글 10개 출력

 

 

 

댓글을 보시면 작성자가 아이디로 되어 있습니다.

 

하지만 글의 작성자가 아이디가 아닌 이름으로 되어 있기 때문에

 

댓글도 아이디가 아닌 이름으로 변경하도록 하겠습니다.

 

변경하기 위해서는 2가지를 해야하는데요

 

1.  DB 변경

 

기존 reply 테이블에서는

CONSTRAINT fk_reply FOREIGN KEY (replyer) REFERENCES user(identification) ON DELETE CASCADE

 

다음과 같이 되어있는데요

ALTER TABLE reply DROP FOREIGN KEY fk_reply;


alter table reply add constraint fk_reply foreign key (replyer) references user(name) on delete cascade;

 

위와 같이 fk를 삭제하고 다시 fk설정을 했습니다.

 

2. view 변경

 

댓글은 게시물과 같이 출력이 되야 하기 떄문에 readView.jsp에서 수정해야합니다

 

기존에 

<div class="input-group">
		<input type="hidden" id="replyer" name="replyer" value="${user.identification}" readonly="readonly"/>
		<input type="text" id="replytext" class="form-control" name="replytext" placeholder="내용을 입력하세요" />
				  
		<span class="input-group-btn">
			<button type="button" class="replyWriteBtn btn btn-success">작성</button>
		</span>
</div>

 

작성자가 사용자의 아이디로 되어있는데

사용자의 이름으로 변경해주도록 하겠습니다.

 

<div class="input-group">
		<input type="hidden" id="replyer" name="replyer" value="${user.name}" readonly="readonly"/>
		<input type="text" id="replytext" class="form-control" name="replytext" placeholder="내용을 입력하세요" />
				  
		<span class="input-group-btn">
			<button type="button" class="replyWriteBtn btn btn-success">작성</button>
		</span>
</div>

 

이렇게 한 후에 댓글을 작성해보겠습니다.

 

 

그리고 한가지 더 문제가 있는데요

 

자신이 작성한 댓글인데 수정, 삭제 버튼이 사라졌습니다.

 

아까 identification에서 name으로 변경했기 때문에 

jstl if문도 변경해야합니다.

 

<c:if test="${user.name == replyList.replyer }"> <!-- boardVO.identification는 글작성한 사람 아이디, user.identification는 로그인한 사람 아이디 -->
		<button type="button" class="replyUpdateBtn btn btn-success" data-reply_number="${replyList.reply_number}">수정</button>
		<button type="button" class="replyDeleteBtn btn btn-danger" data-reply_number="${replyList.reply_number}">삭제</button>
</c:if>

 

 

다음과 같이 정상적으로 출력되었습니다.

+ Recent posts