스프링

뷰에서 처리 

로그인한 유저와 글쓴 유저 확인후 삭제 및 수정 버튼을 보여 준다.

<input type="hidden" value="${view.idx}" name="idx" />
<input type="text" value="${view.ref}" name="ref" />
<input type="text" value="${view.reorder}" name="reorder" />

<c:if test="${loginUser.userid ==view.userid }">

<button class="btn btn-danger" type="button"  id="btnDelete">삭제</button>
<button class="btn" type="button"  id="btnUpdate">수정</button>
</c:if>

 

자바스크립트 처리로 댓글이 달렸는지 확인 후 삭제 여부를 결정한다.

	
	/* 삭제 */
	$("#btnDelete").click(function(){
		
		//댓글이 있는지 확인
		var  liplySize=$("#LplyUL").find(".thumb-pad").size();
		
		if(liplySize > 0){
			alert("댓글이 달린 게시물은 삭제 할 수 없습니다.");	
			return ;
		}
		
		if(confirm("정말 삭제 하시겠습니까?")){
			
			document.form1.action="/board/board_delete.do";
			document.form1.submit();
		}
	});
	
	
   var replyMsg ="${replyMsg}";
   if(replyMsg.length>3){
	   alert(replyMsg);
   }
	
	

 

컨트롤에서 

답변이 달린 게시물이 지 확인 후 답변이 달렸으면 redicrectAtrribute  확인 처리 하였다.

	//게시물 삭제 처리
	@RequestMapping(value="/board_delete.do", method=RequestMethod.POST)
	public String board_delete(@RequestParam int idx, @RequestParam Integer ref,  
			@RequestParam Integer reorder, RedirectAttributes rttr){

			//답변이 있는 게시물, 댓글이 있는 게시물에 대한 처리가 필요함
			//만약 0이면 답변이 없다
			//select count(*) from board where ref=3 and reorder >4;
		   
			if(boardService.replyExist(ref, reorder) == 0 ){
				//답변이 없다. 게시물 삭제
				boardService.boardDelete(idx);
				//게시물 목록 이동
				return "redirect:listPage";
			}else{
				
				rttr.addFlashAttribute("replyMsg", "답변이 달린 게시글은 삭제 할 수 없습니다.");
				return "redirect:view.do?idx="+idx;
			}
	}
	
	

 

dao and servie

 

	@Override
	public void boardDelete(int idx) {
		
		sqlSession.delete(namespace+".boardDelete", idx);
		
	}



	@Override
	public int replyExist(Integer ref, Integer reorder) {
		// TODO Auto-generated method stub
		Map<String, Object> map =new HashMap<>();
		map.put("ref", ref);
		map.put("reorder", reorder);
		
		return sqlSession.selectOne(namespace+".replyExist", map);
	}	
	

 

 

Mappper.xml

SQL 처리

 

	<select id="replyExist" resultType="int">
		select count(*) from board where ref=#{ref} and reorder > #{reorder};
	</select>
	
	<delete id="boardDelete" >
		DELETE  FROM board WHERE idx=#{idx}
	</delete>

 

 

about author

PHRASE

Level 60  머나먼나라

인간이 추구해야 할 것은 돈이 아니다. 항상 인간이 추구해야 할 것은 인간이다. -푸시킨-

댓글 ( 4)

댓글 남기기

작성