[spring 실습] 게시판 만들기 - 글 수정 기능 만들기
[spring 실습] 게시판 만들기 - 글 쓰기 기능 만들기 : integer-ji.tistory.com/341
이어서 진행됩니다.
Update 쿼리문 추가하기
<update id="updateProject">
UPDATE
TB_PROJECT
SET
PRO_TITLE = #{proTitle},
PRO_BODY = #{proBody}
WHERE
PRO_ID = #{proId}
</update>
Oracle의 Update문입니다.
TB_PROJECT 테이블의 PRO_TITLE와 PRO_BODY의 값을 받아 수정합니다.
기준은 PRO_ID.
DAO 설정
void updateProject(ProjectVO projectVO);
DAO에 xml에서 만든 updateProject를 불러옵니다.
Service Update문 추가
void updateProject(ProjectVO projectVO);
Service에 DAO 연결
@Override
public void updateProject(ProjectVO projectVO) {
projectMapper.updateProject(projectVO);
}
다시 ServiceImpl에 가져옵니다.
Controller 추가
/**
* 게시판 수정폼
* @param projectVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value = "/projectUpdateForm.do")
public String projectUpdateForm(@ModelAttribute("projectVO") ProjectVO projectVO, Model model) throws Exception {
return "projectUpdateForm";
}
/**
* 글을 수정합니다.
* @return
*/
@RequestMapping(value = "/projectUpdate.do")
public String projectUpdate(@ModelAttribute("projectVO") ProjectVO projectVO, Model model) {
projectService.updateProject(projectVO);
return "redirect:/projectList.do";
}
게시판을 수정하기 위해 수정 페이지로 연결되는 UpdateForm을 만들어 줍니다.
UpdateForm에서 전송되는 값을 이용해 Update Api를 생성
projectList.jsp 수정 페이지 추가
<a href="${path}/projectUpdateForm.do?proId=${item.proId}">수정</a>
수정 버튼을 누를 때 projectUpdateForm에 파라미터로 item의 proId를 같이 넘겨줍니다.
이 Id를 통해 Update 할 게시글의 Data를 가져옵니다.
글 수정 From.jsp 추가
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!-- @@@ 매우 중요 @@@ -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!-- src/main/webapp/WEB-INF/view/projectRegisterForm.jsp -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"/>
<title>Home</title>
</head>
<body>
<h1>Project Register</h1>
<c:url var="updateUrl" value="${path}/projectUpdate.do" />
<form:form commandName="projectVO" action="${updateUrl}" name="projectVO" method="post">
<form:input type="hidden" path="proId" id="proId" size="20" maxlength="20" value="${item.proId}"/>
<table>
<tbody>
<tr>
<th>제목</th>
<td><form:input path="proTitle" id="proTitle" size="20" maxlength="20" /></td>
</tr>
<tr>
<th>내용</th>
<td><form:textarea path="proBody" id="proBody" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="등록" /></td>
</tr>
</tbody>
</table>
</form:form>
</body>
</html>
projectUpdateForm.jsp를 추가하여 글 수정 페이지를 만들어 줍니다.
15 Line의 type='"hidden"으로 게시글의 proId를 넘겨줍니다.
해당 proId는 Update를 실행하며 Where절에 들어가게 됩니다.
Test
예시를 표현하기 위하여 hidden을 지워 주었습니다.
게시글 번호 9번의 글을 수정합니다.
참고 GitHub : github.com/integerJI/spring.git
'코딩공부 > Java Spring' 카테고리의 다른 글
[spring 실습] 게시판 만들기 - 상세(Detail) 페이지 추가 (0) | 2021.01.01 |
---|---|
[spring 실습] 게시판 만들기 - 글 삭제 기능 만들기 (0) | 2020.12.30 |
[spring 실습] 게시판 만들기 - 글 쓰기 기능 만들기 (0) | 2020.12.28 |
[spring 기초] mvc project 없음 Spring Legacy Project에 아무것도 없을때 (2) | 2020.07.13 |
[spring 기초] Oracle mybatis 연동, 테이블 조회하기 (0) | 2020.05.17 |