게시글 수정
상세보기를 작업할 때는 글번호를 가지고 이미 데이터를 찾아오는 방법이 있기 때문에 Service부터작업하면 됩니다.
1. BoardService 인터페이스에 게시글을 가져와서 수정보기에 사용할 메소드스를 선언
//게시물 수정 보기를 위한 메소드
public Board updateView(HttpServletRequest request);
2. BoardServiceImpl 클래스에 게시글을 가져와 수정보기에 사용할 메소드를 구현
@Override
public Board updateView(HttpServletRequest request) {
String bno = request.getParameter("bno");
return boardDao.detail(Integer.parseInt(bno));}
3. BoardController 클래스에 게시글을 가져와서 수정보기 화면에 출력하는 메소드를 구현
@RequestMapping(value = "board/update", method=RequestMethod.GET)
public String update(HttpServletRequest request ,Model model){
Board board = boardService.detail(request);
model.addAttribute("vo", board);
return "board/update";
}
4.Board디렉토리에 update.jsp 파일을 만들고 수정화면을 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="../include/header.jsp"%>
<section class="content">
<div class="box-header">
<h3 class="box-title">게시판 수정</h3>
</div>
<form role="form" method="post">
<!-- 데이터 수정을 할 때 기본키의 값이 있어야 해서 필요하고
작업이 끝나고 결과 페이지로 이동할 때
상세보기로 이동하려면 글번호가 필요합니다. -->
<input type="hidden" name="bno" value="${vo.bno}" />
<div class="box-body">
<div class="form-group">
<label>제목</label> <input type="text" name='title'
class="form-control" value="${vo.title}">
</div>
<div class="form-group">
<label>내용</label>
<textarea class="form-control" name="content" rows="5">${vo.content}</textarea>
</div>
<div class="form-group">
<label>작성자</label> <input type="text" name="nickname"
value="${user.nickname}" class="form-control" readonly="readonly">
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary">작성완료</button>
</div>
</form>
</section>
<%@include file="../include/footer.jsp"%>
5. board.xml 파일에 게시글 수정을 위한 SQL 작성
<update id="update" parameterType="Board">
update springboard
set
title=#{title}, content=#{content}, regdate=sysdate
where bno=#{bno}
</update>
6. BoardDao 클래스에 게시글 수정을 위한 메소드 생성
public void update(Board board) {
sqlSession.update("board.update",board);
}
7.게시글 수정을 처리해 줄 메소드를 선언
public void update(HttpServletRequest request);
8.BoardServiceImpl 클래스에 게시글 수정을 처리해 줄 메소드를 구현
@Override
public void update(HttpServletRequest request) {
// 파라미터 읽기
// 파라미터를 이용해서 수행할 작업이 있으면 수행
String title = request.getParameter("title");
String content = request.getParameter("content");
String ip = request.getRemoteAddr();
String bno = request.getParameter("bno");
// Dao 메소드를 호출
Board board = new Board();
board.setIp(ip);
board.setContent(content);
board.setTitle(title);
board.setBno(Integer.parseInt(bno));
boardDao.update(board);
}
9. BoardController에서 게시물 수정을 처리해줄 메소드
@RequestMapping(value = "board/update", method=RequestMethod.POST)
public String update(HttpServletRequest request , RedirectAttributes attr){
boardService.update(request);
attr.addFlashAttribute("msg","게시글 수정");
return "redirect:list";
}
'Java > 스프링' 카테고리의 다른 글
6.Spring MVC Project - 인터셉터 (0) | 2018.05.17 |
---|---|
5-3.Spring MVC Project - 게시글삭제 (0) | 2018.05.17 |
5-1. Spring MVC Project- 게시판 상세보기 (0) | 2018.05.15 |
5.Spring 게시판 만들기 (0) | 2018.05.10 |
Spring 카카오 API 지도로 이용 ip로 사용주소 찾기 (0) | 2018.05.09 |