상세 컨텐츠

본문 제목

MVC2 Model게시판 (CRUD) - 게시글 수정하기 (UPDATE) - (1)

web/게시판 CRUD(생성,수정,삭제, 읽기) - MVC2

by 매일매일 배우는 개발자 2021. 1. 26. 10:00

본문

728x90

게시글 수정하기는 게시글의 번호를 가져와 수정할수 있는 페이지와 수정을 담당하는곳 으로 이루어진다. 쉽게 말해서 목록불러와서 수정하는 리스트와 추가를 동시에 해주면된다.

일반적으로, 게시글을 수정버튼은 게시판 상세보기 페이지에 위치한다.

게시글을 수정하기 위해서는 수정버튼을 클릭시에 수정할 게시글 번호와 함께 넘어갈수 있도록 코드를 만들어야 한다.

 

viewContent.jsp

<c:set var="vo" value="${vo }" />
	<h1>여기는 ${vo.no }번 게시판 상세보기 페이지 입니다.</h1>
	<c:out value="${vo.no }">번</c:out>
	<table>
		<tr>
			<td>번호</td>
			<td>이름</td>
			<td>아이디</td>
			
		</tr>	
		<tr>
			<td>${vo.no }</td>
			<td>${vo.username }</td>
			<td>${vo.id }</td>
		<tr>
	</table>
	
	<!-- 수정버튼 클릭시에 boardModifyForm.do 실행과 함께 "no" 값을 같이 가져갈 수 있도록 지정하자 -->
	<a href="${contextPath }/member/boardModifyForm.do?no=${vo.no }">[수정]</a> 

 

클릭하면 게시글 번호에 맞게 수정 페이지할수 있는 페이지가 나와야 한다.


boardModifyForm.do 컨트롤러로 이동해 상세페이지의 no값을 받아온다.

이후 서비스영역으로 보낸다.

 

article을 request영역에 바인딩한후 update.jsp 페이지에서 값을 불러와 사용한다.

 

Controller

if(action.equals("/boardModifyForm.do")) {
			int no = Integer.parseInt(request.getParameter("no"));
			TistoryVO article = tistoryService.getArticle(no);
			request.setAttribute("article", article);
			
			nextPage = "/list/update.jsp";

 

하나의 게시글만 받아올수 있게 selectContent 메소드를 재 활용한다.

이후, article에 리턴한다. 이후 return한뒤 외부에서 쓸수 있게 한다.

 

Service

public TistoryVO getArticle(int no) {
		TistoryVO article = null;
		
		article = tistoryDAO.selectContent(no);
		return article;
	}

 


update.jsp 페이지에서 바인딩되어온 값을 사용해 번호는 수정할수 없게 사용한다.

이후 수정하기 버튼을 클릭하면 다시 boardModifyPro.do를 수행하게 사용하면 된다.

 

update.jsp

<c:set var="article" value="${article }" />
<form action="${contextPath }/member/boardModifyPro.do" method="post">

	<table>
		<tr>
			<td>번호  </td>
			<td>
				<input type="text" name="no" value="${article.no }" readonly>
			</td>
		</tr>
		<tr>
			<td>이름  </td>
			<td>
				<input type="text" name="username" placeholder="username" value="">
			</td>
		</tr>
		<tr>
			<td>아이디  </td>
			<td>
				<input type="text" name="id" placeholder="id" value="" />
			</td>
		</tr>			
	</table>
	
	
	<input type="submit" value="수정하기">
	<input type="reset" value="취소하기">		
</form>
728x90

관련글 더보기