게시글을 수정하는 기능을 만들어보자.
../boardUpdateForm.do/${vo.idx}
로 url요청을 보내고 있다. Board Controller에서 응답을 하자.
Board Controller
게시글을 수정할 수 있도록 수정폼을 제공한다. 이렇게 한 이유는 사용자가 게시글을 작성한 상태에서 바로 수정할 수 있다. 그렇지 않으면 사용자는 맨 처음부터 게시글을 다시 작성해야 한다.
boardMapper.xml파일이다.
boardUpdateForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>project01</h2>
<div class="panel panel-default">
<div class="panel-heading">Board</div>
<div class="panel-body">
<form action = "../boardUpdate.do" method ="post"> <!-- 내가입력한 모든값이 여기로 이동 -->
<input type = "hidden" name = "idx" value = "${vo.idx}"> <!-- 뭔가 값을 넣어줘야 될때 히든을 많이씀 -->
<table class = "table">
<tr>
<td>제목</td>
<td><input value="${vo.title}" type = "text" name = "title" class ="form-control"></td>
</tr>
<tr>
<td>내용</td>
<td><textarea class ="form-control" name = "content" rows="7" cols=""></textarea></td>
</tr>
<tr>
<td>작성자</td>
<td><input valud="${vo.writer }" type = "text" name = "writer" class ="form-control"></td>
</tr>
<tr>
<td colspan ="2" align="center">
<button class="btn btn-success btn-sm" type = "submit">등록</button>
<button class="btn btn-warning btn-sm" type = "reset">취소</button> <!-- 컨트롤+알트 아래화살표하면 복사됨 -->
<a href ="boardList.do" class="btn btn-info btn-sm">목록</a> <!-- 컨트롤+알트 아래화살표하면 복사됨 -->
</td>
</tr>
</table>
</form>
</div>
<div class="panel-footer">Board</div>
</div>
</div>
</body>
</html>
<input>
태그에 value속성을 이용해 사용자가 전에 입력했던 제목, 내용, 작성자를 화면에 그대로 띄어줄 수 있도록 한다. 여기서 <textarea>
태그는 value속성을 이용할 수 없기 때문에 태그 사이에 내용을 작성한다.
전에 사용자가 입력했던 내용이 그대로 출력된다. 등록을 누르게되면 게시글이 수정되도록 해보자.
기존의 게시글 생성기능과 똑같다.
boardMapper 인터페이스 파일이다.
boardMapper.xml 파일이다. 업데이트까지 완성하였다.