수정하기는 해당 유저에 대한 정보를 그대로 가지고 온다.
이전(목록보기)과 수정하기 버튼이 있고 수정 버튼 클릭 시 수정페이지로 이동되며 제목과 내용을 수정할 수 있다.
✂️수정 전
✂️수정 후
@GetMapping("modify_form")
public String modify_form(@RequestParam int writeNum, Model model) {
bs.getData(writeNum, model);
return "board/modify_form";
}
Model
을 통해 service로 데이터를 전달한다.public void getData(int writeNum, Model model);
public void getData(int writeNum, Model model) {
model.addAttribute("detailWriteData", mapper.writeView(writeNum));
}
<form action="${contextPath}/board/modify" method="post" >
<div class="form-group">
<label>글번호</label>
<input class="form-control" name="writeNum" value="${detailWriteData.writeNum }" readonly>
</div>
<div class="form-group">
<label>작성자</label>
<input class="form-control" name="writer" value="${detailWriteData.writer }" readonly>
</div>
<div class="form-group">
<label>제목</label>
<input class="form-control" name="title" value="${detailWriteData.title }" >
</div>
<div class="form-group">
<label>내용</label>
<textarea class="form-control" rows="3" name="content">${detailWriteData.content }</textarea>
</div>
</div>
<c:if test="${successUser == detailWriteData.writer }">
<input type="submit" class="btn btn-default" value="수정하기">
<input type="submit" class="btn btn-default" value="삭제하기">
<input type="button" class="btn btn-default" value="목록보기"
onClick="location.href='${contextPath}/board/list'">
</c:if>
</form>
post
방식으로 modify 컨트롤러로 연결한다.@PostMapping("modify")
public void modify(MultipartHttpServletRequest multi,HttpServletResponse response,
HttpServletRequest request) throws IOException {
String message = bs.modify(multi, request);
PrintWriter out=null;
response.setContentType("text/html; charset=utf-8");
out = response.getWriter();
out.println(message);
}
@PostMapping
을 쓴다. public String modify(MultipartHttpServletRequest multi, HttpServletRequest request);
public String modify(MultipartHttpServletRequest multi, HttpServletRequest request) {
boardDTO dto = new boardDTO();
dto.setWriteNum( Integer.parseInt(multi.getParameter("writeNum")) );
dto.setTitle(multi.getParameter("title"));
dto.setContent(multi.getParameter("content"));
int result = mapper.modify(dto);
String msg, url;
if(result == 1) {
msg = "수정되었습니다";
url = "/board/list";
}else {
msg = "수정 중 문제가 발생하였습니다";
url = "/board/modify_form";
}
}
int형으로 형변환
을 해주었다.public int modify(boardDTO dto);
<update id="modify">
update talk_board set title=#{title},content=#{content} where write_num=#{writeNum}
</update>
update
를 사용한다.