오랜만에 쓰는 폿스팅
사담은 빼고 바로 결과 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: ${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>
이렇게 남아잇읍니다~~ 이래서 악플 막 쓰면 안되는거에욤~~~~~
님은 지웠다고 생각해도 님이 생각없이 찐 악플과 글들은 디비에 있어욤 익명성 믿고 막 살지 맙시다 이거에요~~
'Project > 2. My First Website <Mybatis>' 카테고리의 다른 글
project 3.5 My first website/ 게시판 내 게시글 보기 (0) | 2020.09.23 |
---|---|
project 3.4 My first website/ 게시판 게시글 조회수 조정하기(올리기) (0) | 2020.09.23 |
project 3.2 My first website/ 게시판 글쓰기 페이지 (0) | 2020.09.14 |
project 3.1 My first website/ 게시판 리스트 (0) | 2020.09.13 |
project 2.5 My first website/ 회원정보 변경 페이지 (0) | 2020.09.12 |