게시판 글 삭제

이경현·2024년 11월 11일
  • 게시글 삭제 :
    삭제 비밀번호 입력란 보여주기
  1. 컨트롤러에서
	@RequestMapping(value="boardDelete.aws")			// 매핑 어노테이션 찍고 		
	public String boardDelete(
			@RequestParam("bidx") int bidx, 		// 가져가야할 값 게시글 번호
			Model model) {				// 모델에 담아서 가져갈거임
		
		model.addAttribute("bidx", bidx);			// 게시글 번호 모델에 담아주기 
		String path = "WEB-INF/board/boardDelete"; 		// 글번호 가지고 삭제 페이지로 가세요
		return path;					// 경로 리턴해주기 
	}
  1. 삭제 동작 구현하기 :
    컨트롤러에
@RequestMapping(value="boardDeleteAction.aws", method = RequestMethod.POST)		//post 방식으로 넘김	
	public String boardDeleteAction(
			@RequestParam("bidx") int bidx,
			@RequestParam("password") String password,
			RedirectAttributes rttr,
			HttpSession session) {			// 글번호, 비밀번호, 리다이렉트, 회원번호 담긴 세션// 파라미터값으로 설정
		BoardVo bv = boardService.boardSelectOne(bidx);	// bidx 기준으로 한개 글 가져오는 메서드 실행
		
		int midx = Integer.parseInt(session.getAttribute("midx").toString());	//세션에서 가져온 회원번호 숫자형으로 담아주기
		int value = boardService.boardDeleteAction(bidx, midx, password);	// 삭제 동작 구현할 메서드(파라미터 값 : 글번호, 회원번호, 비밀번호) 실행하고 숫자형으로 담아주기 조건문 돌리기 위함
		
		String path = "";	// 경로  초기화
		if(bv.getMidx()==midx) {		// 가져온 회원번호가 현재의 회원번호와 일치하면 
			if(value ==1) {		// 메서드 실행하고 리턴값 조건달기 
				path = "redirect:/board/boardList.aws";		// 성공하면 리스트페이지로  보내주고
				
			}else {			// 메서드 실행하고 실패하면 리턴 0 1이 아닌것이 리턴됨
				rttr.addFlashAttribute("msg", "비밀번호가 틀렸습니다");
				path = "redirect:/board/boardDelete.aws?bidx="+bidx;		// 비밀번호가 틀려서 실패하면 bidx 를 가지고  삭제페이지로 보내기
			}	
		}else {		// 가져온 회원번호가 현재의 회원번호화 일치하지 않을 때
			rttr.addFlashAttribute("msg", "글쓴회원이 아닙니다");
			path = "redirect:/board/boardDelete.aws?bidx="+bidx;		// 회원번호가 달라서  실패하면 bidx 가지고 삭제페이지로 보내기 메시지만 다르게 
			
		}	
		 return path;		// 경로 리턴
	}
  1. 삭제 동작 서비스 부분 BoardService , BoardServiceImpl 에 파람값 같게 설정
    BoardService에 선언
public int boardDeleteAction(int bidx, int midx, String password);

BoardServiceImpl 에 추가 add unimpl~

@Override
	public int boardDeleteAction(int bidx, int midx, String password) {
		HashMap<String, Object> hm = new HashMap<String, Object>();		// 해쉬맵으로 받아오자
		hm.put("bidx", bidx);
		hm.put("midx", midx);
		hm.put("password", password);
		
		int cnt = bm.boardDeleteAction(hm);
		
		
		
		return cnt;
		
	
	}
  1. mapper 매퍼는 매퍼끼리 리턴값 파람값 맞춰주기
    boardMapper.xml에 쿼리작성하기
    <update id="boardDeleteAction" parameterType = "HashMap">
    	update board set delyn = 'Y', modifyday = now()  WHERE bidx = #{bidx} and midx = #{midx} and password= #{password}
    </update>
    

persistence에 있는 BoardMapper에 선언
BoardMapper 에 선언

public int boardDeleteAction(HashMap hm); // 마이바티스용 메서드 선언
  1. 컨트롤러에서 호출해서 사용하기 //

0개의 댓글