수정하기 페이지만 보여주기
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;
}
수정하기 동작 구현
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; // 경로 리턴
}
//BoardService 에 메서드 선언
public int boardUpdate(BoardVo bv);
//BoardServiceImpl에 선언 add unimpl~
@Override
public int boardUpdate(BoardVo bv) { // 리턴은 숫자 파람값은 bv로
int value = bm.boardUpdate(bv); // bm에 선언해주기
return value;
}
//마이바티스용 메서드 선언
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>
value = boardService.boardUpdate(bv);
++ 수정하기 페이지 > boardModify.jsp 에서
아래 코드 추가해주고
<%
BoardVo bv = (BoardVo)request.getAttribute("bv"); // 강제 형변환으로 양쪽의 타입을 맞춰주자
%>
가져올 값 bv.get으로 변경해주기