본문 바로가기

Project/2. My First Website <Mybatis>

project 3.3 My first website/ 게시판 게시글 보기 페이지 + 글 삭제

오랜만에 쓰는 폿스팅

사담은 빼고 바로 결과 view

 

 

 

삭제되면 글 자체는 지워지지 않지만 삭제된 포스트라고 뜨고, 클릭이 되지 않음~~

 

1. view

1) boardView.jsp

*투 리스트를 누르면 리스트로 가나, 1 페이지당 게시글이 5개이므로 6번째 글부터 페이지가 달라진다. 투 리스트할때마다 1페이지로 가고싶지 않으면 히든 버튼으로 페이지 데이터를 넘겨줘야됨.

*bNo를 받아야지 보드넘버로 데이터를 지워줄 수 있음 

*단 코멘트는 로그인한 유저만, 게시글 삭제는 게시글 작성한 유저만 지울 수 있음

 

<script>

// List

function fn_boardList(f) {

f.action = '/MYHOME_P/boardList.board';

f.submit();

}

// Reply

function fn_replyInsertPage(f) {

f.action = '/MYHOME_P/replyInsertPage.board';

f.submit();

}

// Delete Post

function fn_boardDelete(f) {

if (confirm('Are you sure you want to delete the post?')) {

f.action = '/MYHOME_P/boardDelete.board';

f.submit();

}

}

</script>

 

<br/><br/><br/><br/>

 

<form method="post">

<div class="boardView">

<span> Total: &nbsp; ${totalRecord} posts</span>

</div>

<hr>

<div class="boardViewContent">

writer: ${bDto.mId} <br/>

title: ${bDto.bTitle} <br/>

posted date: ${bDto.bRegDate} <br/>

latest modify date: ${bDto.bLastModify}<br/>

IP: ${bDto.bIp} <br/>

views: ${bDto.bHit}<br/>

content<br>

<pre>${bDto.bContent}</pre>

</div>

<div class="boardViewBtn">

<input type="hidden" name="page" value="${page}" />

<input type="hidden" name="bNo" value="${bDto.bNo}" />

<button type="button" id="boardInsertListBtn" class="btn btn-outline-dark" onclick="fn_boardList(this.form)">to list</button>

 

<!--  loginUser only can comment--> 

<c:if test="${loginUser ne null and bDto.bDepth eq 0}">

<button type="button" id="boardInsertListBtn" class="btn btn-outline-dark" onclick="fn_replyInsertPage(this.form)" >comment</button>

</c:if>

 

<!--  loginUser only can delete --> 

<c:if test="${loginUser.mId eq bDto.mId}">

<button type="button" id="boardInsertListBtn" class="btn btn-outline-dark" onclick="fn_boardDelete(this.form)">delete</button>

</c:if>

</div>

</form>

 

2)boardDeleteResult.jsp

삭제는 따로 페이지 없이 뷰리스트 스크립트에서 펑션으로 처리하며, 딜리트리저트페이지에서 알럿으로삭제가 잘 됐는지, 안됐는지만 확인해준다.

<script type="text/javascript">

if ( ${param.result} > 0 ) {

alert('Successfully deleted.');

location.href = '/MYHOME_P/boardList.board?page=' + ${param.page}; // 여기서도 그 뷰 게시물의 같은 페이지목록으로 나간다.

} else {

alert('Delete failed.');

history.back();

}

</script>

 

 

2. Controller

1) boardView

case "/boardView.board" :

boardCommand = new BoardViewCommand();

vf = boardCommand.excute(request, response);

break;

2)boardDelete

case "/boardDelete.board" :

boardCommand = new BoardDeleteCommand();

vf = boardCommand.excute(request, response);

break;

 

 

3. Command

1)BoardViewCommand

2)BoardDeleteCommand

 

 

4. Dao

1)boardView 

public BoardDto selectBybNo(int bNo) {

SqlSession ss = factory.openSession();

BoardDto bDto = ss.selectOne("mybatis.mapper.board.selectBybNo", bNo);

ss.close();

return bDto;

}

2)boardDelete

public int boardDelete(int bNo) {

SqlSession ss = factory.openSession(false);

int result = ss.update("mybatis.mapper.board.boardDelete", bNo);

if (result>0) {

ss.commit();

}

ss.close();

return result;

}

 

 

5. xml

1)boardView

<select id="selectBybNo" parameterType="int" resultType="dto.BoardDto">

SELECT *

  FROM BOARD2

WHERE BNO = #{bNo} 

</select>

2)boardDelete (업데이트로 진행해서 db에는 삭제 안되어있음)

<update id="boardDelete" parameterType="int">

UPDATE BOARD2

  SET BDELETE = -1

WHERE BNO = #{bNo}

</update>

 

 

 

 

 

이렇게 남아잇읍니다~~ 이래서 악플 막 쓰면 안되는거에욤~~~~~

님은 지웠다고 생각해도 님이 생각없이 찐 악플과 글들은 디비에 있어욤 익명성 믿고 막 살지 맙시다 이거에요~~