본문 바로가기
혼자서 개발새발

Spring) 게시판 보완(이전 글, 다음 글, 내 글에만 수정, 삭제 보이기 등)

by 휴일이 2022. 11. 23.

 

 

댓글 만들기가 어려워서 헤매고 있어서

만만한 게시판을 보완해보았다 +.+

 

 

1) 이전글, 다음글 보기

 

BoardController @GetMapping(/read) 에

BoardDto prevBoard = service.read(no-1);
BoardDto nextBoard = service.read(no+1);

m.addAttribute("prevBoard", prevBoard);
m.addAttribute("nextBoard", nextBoard);

 

현재 글에 no-1, no+1을 해서 찾은 BoardDto,

prevBoard와 nextBoard를 만들고 모델에 넣어준다

 

 

 

board.jsp

<table>
    <tr><td>이전글 </td><td><a href="/board/read?no=${prevBoard.no}&page=${p.page}&pageSize=${p.pageSize}"> ${prevBoard.title}</a></td></tr>
    <tr><td>다음글 </td><td><a href="/board/read?no=${nextBoard.no}&page=${p.page}&pageSize=${p.pageSize}"> ${nextBoard.title}</a></td></tr>
</table>

이전글과 다음글 테이블을 만들고

글 제목을 클릭하면 해당 이전글 또는 다음글로 갈 수 있도록 a태그(하이퍼링크)를 붙여준다

 

 

 

결과는?

이전 글과 다음 글이 나온다

 

 

 

이전 글을 클릭하면 이전글이 뜬다!!

 

 

 

 

 

2) 내 글에만 수정, 삭제 버튼 보이기

 

전에는 내 글이 아닌 글에도 수정, 삭제가 떴었다

대신 수정, 삭제 버튼을 누르면 (내 글만 수정, 삭제가 가능합니다) 알림이 뜨긴 했지만

역시 내 글에만 수정 삭제 버튼이 있는 것이 제일 보기 좋다!!!

 

 

요것은 구현하기 아주 간단했다

 

board.jsp

<!-- 글쓴이와 세션ID가 같을 때만 수정, 삭제 보이게 하기 -->
<c:if test="${boardDto.id eq id}">
<button type="button" id = "removeBtn">삭제</button>
<button type="button" id = "modifyNewBtn" onclick="location.href='/board/modify?no=${boardDto.no}&page=${p.page}&pageSize=${p.pageSize}'">수정</button>
</c:if>

 

고냥 원래 수정, 삭제 버튼이 있던 자리에

boardDto의 id와 세션 아이디(로그인 아이디)가 같을 때만

수정, 삭제 버튼이 보일 수 있도록 했다

 

 

결과는?

 

내 글에는 삭제, 수정이 보인다

 

 

내 글이 아니면 보이지 않는다

 

 

3) 글쓰기, 수정할 때 목록을 누르면 -> 확인 버튼을 누르기

 

보통 블로그나 카페에서 보면

글쓰거나 수정을 할 때, 그냥 목록으로 나가버리면

정말 나가시겠습니까? 하는 확인이 뜬다

매우 쉽게 구현할 수 있다!

 

 

board.jsp

// 글쓰기, 수정 상태일 때 목록으로 나갈 거냐고 묻기
$('#listBtn').click(function () {
    if(${mode eq 'new'}) {
        if(!confirm("글을 등록하지 않았습니다. 그래도 나가시겠습니까?")) return;
    }
    if(${mode eq 'change'}) {
        if(!confirm("아직 수정 전입니다. 그래도 나가시겠습니까?")) return;
    }
})

 

글쓰기 상태나, 수정 상태일 때 목록을 누르면 확인하는 버튼이 뜬다 :)

 

 

 

수정할 때

 

글쓰기를 할 때

 

 

 

 

다른 기능들 구현은 다음 기회에!

728x90