bbs_detail.jsp 수정


게시글 수정을 위해 게시글 상세 페이지에 버튼을 추가합니다.

기존 테이블 하단에 새로운 행을 생성하고 버튼을 추가해줍니다

<table width=80% height=500px border=1 align=center>
	<tr height=30px>
	<td align="center" colspan="1">제목</td>
	<td align="center" colspan="3"><c:out value="${detail.bbs_title}"/></td>
	</tr>
	<tr>
	<td align="center" width=25%>작성자</td>
	<td align="center" width=25%><c:out value="${detail.author}"/></td>
	<td align="center" width=25%>작성일</td>
	<td align="center" width=25%><c:out value="${detail.date}"/></td>
	</tr>
	<tr>
	<td align="center" colspan="4">내 용</td>
	</tr>
	<tr height = 500px>
	<td colspan="4"><c:out value="${detail.bbs_content}"/></td>
	</tr>
	<tr>
	<td colspan="2">
	<button onclick="location.href='/app/bbs/edit/${detail.bbs_id}';">수정</button>
	</td>
	<td colspan="2">
	<button>삭제</button>
	</td>
	</tr>
</table>

수정을 위한 bbs_edit.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>
</head>
<body>
	<form method="post" action="/app/EditAct">
		<table>
			<tr>
				<td>
					<table width="100%" cellpadding="0" cellspacing="0" border="0">
						<tr>
							<td>글쓰기</td>
						</tr>
					</table>
					<table>
						<tr>
							<td>&nbsp;</td>
							<td align="center">제목</td>
							<td><input name="bbs_title" size="50" maxlength="100" value="<c:out value="${detail.bbs_title}"/>"></td>
							<td>&nbsp;</td>
						</tr>
						<tr height="1">
							<td colspan="4"></td>
						</tr>
						<tr>
							<td>&nbsp;</td>
							<td align="center">내용</td>
							<td><textarea name="bbs_content" cols="50" rows="13"><c:out value="${detail.bbs_content}"/></textarea></td>
							<td>&nbsp;</td>
						</tr>
						<tr height="1">
							<td colspan="4"></td>
						</tr>
						<tr height="1">
							<td colspan="4"></td>
						</tr>
						<tr align="center">
							<td>&nbsp;</td>
							<td colspan="2"><input type="submit" value="수정">
							<td>&nbsp;</td>
						</tr>
						<input type="hidden" name="bbs_id" value="<c:out value="${detail.bbs_id}"/>">
					</table>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

위 코드는 게시글 보기 페이지 구현을 할때 사용한 jstl을 이용하여 구성하였습니다.

컨트롤러에서 model Attribute로 심어준 데이터를 html상에서 뿌려주는 역할을 합니다.


Dao/BbsDao.java 와 BDao.java 수정


BbsDao와 BDao에 수정을 위한 메소드 Edit을 추가해줍니다.

BDao

public interface BDao {
	public void Write(Map map);
	public ArrayList<BbsDto> list();
	public BbsDto detail(String bbs_id);
	public void Edit(Map map);
}

BbsDao

	public void Edit(Map map) {
		// TODO Auto-generated method stub
		
	}

mapper/BDao.xml 수정


BDao.xml에 UPDATE 쿼리를 등록합니다.

	<update id="Edit">
	UPDATE bbs
	SET
		bbs_title = #{bbs_title},
		bbs_content = #{bbs_content}
	WHERE bbs_id = #{bbs_id}
	</update>

 

BbsController 수정


bbsController에 이전 포스트에서 사용했던 PathVariable을 이용하여 수정 페이지에 접속하는 매핑 메소드를 생성해줍니다.

	@RequestMapping("/bbs/edit/{bbs_id}")
	public String bbs_edit(@PathVariable String bbs_id, Model model) {
		BDao dao = sqlSession.getMapper(BDao.class);
		BbsDto detail = dao.detail(bbs_id);
		model.addAttribute("detail", detail);
		return "bbs_edit";
	}

게시글의 수정이 이루어지는 메소드 입니다

	@ResponseBody
	@RequestMapping("/EditAct")
	public String EditAct(HttpSession session, HttpServletRequest request) throws UnsupportedEncodingException {
		request.setCharacterEncoding("utf-8");
		Map map = new HashMap();
		map.put("bbs_title", request.getParameter("bbs_title"));
		map.put("bbs_content", request.getParameter("bbs_content"));
		map.put("bbs_id", request.getParameter("bbs_id"));
		BDao dao = sqlSession.getMapper(BDao.class);
		dao.Edit(map);
		String str="<script>";
		str+="location.href='/app/bbs/';";
		str+="</script>";
		return str;
	}

위와 같이 작성하고 직접 접속하여 확인해보면 잘 수정되는 것을 볼 수 있습니다.

'WEB > Spring' 카테고리의 다른 글

12) Spring - 게시글 삭제  (0) 2019.11.19
10) Spring - 게시글 보기 구현  (0) 2019.11.01
9) Spring - 게시글 목록 구현  (0) 2019.11.01
8) Spring - 게시판 글쓰기 구현  (0) 2019.10.12
7) Spring - 로그아웃  (0) 2019.10.12

+ Recent posts