[Spring Boot 게시판] 14일차

김정현·2022년 10월 14일
0

SPRINGBOOT게시판

목록 보기
13/36

1. 데이지 UI 적용 및 수정 버튼 노출 제한

1) 데이지 UI 추가

<!-- 노말라이즈, 라이브러리까지 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.7/tailwind.min.css" />

<!-- 데이지 UI -->
<link href="https://cdn.jsdelivr.net/npm/daisyui@2.31.0/dist/full.css" rel="stylesheet" type="text/css" />

2) 수정 버튼 노출 제한

private void updateForPrintData(int actorId, Article article) {
		if (article == null) {
			return;
		}
		ResultData actorCanDeleteRd = actorCanDelete(actorId,article);
		article.setExtra__actorCanDelete(actorCanDeleteRd.isSuccess());
		ResultData actorCanModify = actorCanModify(actorId,article);
		article.setExtra__actorCanModify(actorCanModify.isSuccess());
	}
  • 삭제버튼 노출과 동일한 방식으로 게시물에 대한 권한을 체크하여

  • article.setExtra__actorCanModify(actorCanModify.isSuccess()) : 게시물에 대한 권한 여부데이터를 추가

2. 게시물 작성 페이지 제작 및 작성 처리 구현

1) Rq클래스 생성자에 MemberService추가

		public Rq(HttpServletRequest req, HttpServletResponse resp, MemberService memberService) {
			~~ 생략 ~~
		Member loginedMember = null;
		if (session.getAttribute("loginedMemberId") != null) {
			isLogined = true;
			loginedMemberId = (int) session.getAttribute("loginedMemberId");
			loginedMember =memberService.getMemberById(loginedMemberId);
		}
		this.isLogined = isLogined;
		this.loginedMemberId = loginedMemberId;
		this.loginedMember = loginedMember;
  • MemberService를 이용해 로그인된 회원rq객체에 저장

2) write.jsp

        <tr>
            <td>작성자</td>
            <td>${rq.loginedMember.nickname }</td>						
        </tr>		
  • modify와 방식이 비슷하나 게시글 작성페이지에서는 게시글 작성자를 보여주려 한다

  • rq객체에는 로그인 여부, 로그인한 회원 번호와 로그인된 회원이 저장 되있으므로

  • 작성자를 페이지에서 보여줄수 있게됨

3. 게시물 작성 후 replace로 처리

1) Rq클래스 메소드 추가

	public String jsHistoryBack(String msg) {		
		return Ut.jsHistoryBack(msg);
	}

	public String jsReplace(String msg, String uri) {		
		return Ut.jsReplace(msg, uri);
	}
  • Ut클래스에 있는 메소드들을 Ut.jsHistoryBack(msg), Ut.jsReplace(msg, uri)
  • rq객체에서 사용할수있게 구현 (통일성을 위해)
  • jsReplace(), jsHistoryBack()을 통해 게시물 작성후 경로 이동

4. 멀티 게시판 도입 , board 테이블 생성

# 게시판 테이블 생성
CREATE TABLE board (
    id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    regDate DATETIME NOT NULL,
    updateDate DATETIME NOT NULL,
    `code` CHAR(50) NOT NULL UNIQUE COMMENT 'notice(공지사항), free1(자유게시판1), free2(자유게시판2),..',
    `name` CHAR(50) NOT NULL UNIQUE COMMENT '게시판 이름',
    delStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '삭제여부 (0=삭제 전,1=삭제 후)',
    delDate DATETIME COMMENT '삭제날짜'
);

0개의 댓글