게시글 수정

이경현·2024년 11월 11일
  • 게시글 수정하기
  1. 수정하기 페이지만 보여주기
    controller

    @RequestMapping(value="boardModify.aws")
    		public String boardModify(@RequestParam("bidx") int bidx,Model model) {	// 게시글 번호 필요하고 모델에 담아서 넘길거임
    		
    			BoardVo bv = boardService.boardSelectOne(bidx);	// 글 하나 가져오는 메서드 실행해주고	
    			model.addAttribute("bv", bv);	// 모델에 담아주기
    		
    			String path="WEB-INF/board/boardModify";	// 수정하기 페이지로 보내기
    			return path;
    		}
  2. 수정하기 동작 구현
    controller

@RequestMapping(value="boardModifyAction.aws")		// 가상경로 액션이 들어오면
	public String boardModifyAction(			// 실행
			BoardVo bv,			// bv에 제목, 내용, 작성자, 비밀번호 담아올것
			@RequestParam("attachfile") MultipartFile attachfile, // 파일은 멀티파트파일로 담아올것
			HttpServletRequest request,			// 세션값 담을 것 
			RedirectAttributes rttr			//리다이렉트 속성값 담을 것
			) throws Exception {
		
			int value=0;		// 리턴값 초기화
		
			MultipartFile file = attachfile;
			String uploadedFileName="";
			
			if (!file.getOriginalFilename().equals("")) {			//원본파일 이름이 있으면		
				uploadedFileName = UploadFileUtiles.uploadFile(uploadPath, file.getOriginalFilename(), file.getBytes());
			}		//uploadedFileName에 담기(업로드된 파일 이름)
			
			String midx = request.getSession().getAttribute("midx").toString();
			int midx_int = Integer.parseInt(midx);	// midx 값		
			String ip = getUserIp(request);	// ip값 
			
			bv.setUploadedFilename(uploadedFileName);   // 파일이름 세팅해주기 
			bv.setMidx(midx_int);			//회원번호 세팅해주기
			bv.setIp(ip);				//ip세팅해주기
			
		
			value = boardService.boardUpdate(bv);	// 서비스 단에서 실행할 메서드 > 결과값 담기 
		
			String path="";
			if (value==1) { // 성공한 경우 1리턴
				path="redirect:/board/boardContents.aws?bidx="+bv.getBidx();	// 성공했으면 글번호 가지고 내용으로 가
				
			}else {		// 실패한 경우 0 리턴됨 
				rttr.addFlashAttribute("msg", "실패");
				path="redirect:/board/boardModify.aws?bidx="+bv.getBidx();	// 실패했으면 글번호 가지고 다시 수정페이지로 가
				
			}		
		
			return path;		// 경로 리턴
	}
  1. service와 serviceImpl에 선언해주기
//BoardService 에 메서드 선언
public int boardUpdate(BoardVo bv);	


//BoardServiceImpl에 선언 add unimpl~
@Override
	public int boardUpdate(BoardVo bv) {		// 리턴은 숫자 파람값은 bv로 
		
		int value = bm.boardUpdate(bv);	// bm에 선언해주기 	
		return value;
	}

  1. Mapper설정해주기
    4-1. BoardMapper에 선언
//마이바티스용 메서드 선언
public int boardUpdate(BoardVo bv); // 리턴은 숫자 파람값은 bv로 

4-2 boardMapper.xml 에 쿼리문 작성

<update id="boardUpdate" parameterType="bv">
	update board set subject=#{subject},contents=#{contents},writer=#{writer}, modifyday= now(),filename=#{uploadedFilename} where bidx=#{bidx} and password=#{password} and midx=#{midx}
</update>
  1. 컨트롤러에서 사용하기
 value = boardService.boardUpdate(bv);

++ 수정하기 페이지 > boardModify.jsp 에서
아래 코드 추가해주고

 <%
  BoardVo bv = (BoardVo)request.getAttribute("bv");			// 강제 형변환으로 양쪽의 타입을 맞춰주자
  %> 

가져올 값 bv.get으로 변경해주기

0개의 댓글