<div>
<% if(dto.getUserid().equals(session.getAttribute("logId"))){%>
<a href="<%=request.getContextPath()%>/board/boardEdit.jsp?no=<%=dto.getNo()%>">수정</a>
<a href="javascript:boardDelCheck()">삭제</a>
<%} %>
</div>
게시판에서 글을 삭제할때 삭제 버튼을 누르면 링크로 넘어가는게 아니고 JS 로 넘길 때 <a href> 안에 "javascript: 넘길 함수" 로 해서
<script>
//삭제여부 확인 함수
function boardDelCheck(){
// 확인 -> true 리턴됨, 취소->false 리턴됨
if(confirm("정말 글을 삭제하시겠습니까?")){
location.href="<%=request.getContextPath()%>/board/boardDel.jsp?no=<%=no %>";
}else{
}
}
</script>
요기로 넘기고 confirm 으로 다시 한번 정말로 삭제할지 물어보고 boardDel.jsp로 넘기는데
if(result>0){ //삭제하면 글 목록
response.sendRedirect(request.getContextPath()+"/board/boardList.jsp");
}else{ // 삭제가 이뤄지지 않으면 글 내용보기
response.sendRedirect(request.getContextPath()+"/board/boardView.jsp?no="+no);
}
BoardDAO에 있는 삭제를 담당하는 메소드에서 delete되고 다시 위에 코드블럭으로 넘어온다.
그런데 평소에 쓰던 delete 쿼리문을 쓰면 아예 삭제되고 혹시라도 DB에서 쿼리 처리 오류가 생길때 result=0이 되어 else문으로 넘어오는데 그외의 경우에는 else문이 필요할지 의문이다.
예를 들어 내가 글을 삭제하려던 찰나에 관리자가 내 글을 삭제하고 내가 그이후에 삭제 버튼을 누르면 else문이 발생할 수 있을까 라고 생각해봤지만 어차피 그럴경우 no 데이터 자체가 삭제되어 아래와 같은 오류가 발생한다.
DB에서 쿼리 처리 오류가 있을때 말고는 딱히 없을것 같다.
내일 강의시간에 물어봐야겠다.
수정) 예상한대로 else문이 발생할 가능성은 희박하다고 한다ㅎㅎ 괜한 고민을 한것 같지만 그래도 남이 말해준걸 듣고 아 그런거보다 하고 넘기는 것보다 스스로 고민을 해보는게 훨씬 더 큰 도움이 되는것 같다. 이런 고민과 해결과정이 계속 쌓이면 언젠가는 유능한 개발자라는 소리를 들을수 있지않을까? 그런 날이 올때까지 열공해야겠다