Spring 게시판 만들기(14)
수정하는 폼과 작동 연결
write와 마찬가지로 PostMapping 작업
@GetMapping에서 /modify도 넣어준다
같은 메서드를 Get시 같이 이용, Post는 따로
@GetMapping(value= {"/get", "/modify"} )
public void get(@RequestParam("bno") Long bno, Model model) {
log.info("글번호 : " + bno);
BoardVO board = service.get(bno);
model.addAttribute("board", board);
// 첫번째 "board"는 jsp 파일 내에서 서버를 불러올때 사용하는 변수
}
@PostMapping("/modify")
public String modify(BoardVO vo) {
service.modify(vo);
log.info("수정내용 : " + vo.toString());
return "redirect:/board/list";
}
Mapper에서 ServiceImpl에 가져갈 메서드와 Service도 작성
void modify(BoardVO vo);
ServiceImpl 작성
@Override
public void modify(BoardVO vo) {
mapper.modify(vo);
}
SQL 구문 작성 xml
<!-- #{}안에 내용은 필드에서 가져온 것을 말한다 -->
<update id="modify" parameterType="com.demo.domain.BoardVO">
update tbl_board set title = #{title}, content = #{content} where bno = #{bno}
</update>
마지막으로 modify.jsp 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Hugo 0.88.1">
<title>Pricing example · Bootstrap v4.6</title>
<link rel="canonical" href="https://getbootstrap.com/docs/4.6/examples/pricing/">
<!-- Bootstrap core CSS -->
<link href="/resources/css/bootstrap.min.css" rel="stylesheet">
<style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
</style>
<!-- Custom styles for this template -->
<link href="/resources/css/pricing.css" rel="stylesheet">
</head>
<body>
<!-- header -->
<%@ include file="/WEB-INF/views/include/header.jsp" %>
<%@ include file="/WEB-INF/views/include/carousel.jsp" %>
<div class="container">
<h3>게시판 글수정</h3>
<form method="post" action="modify">
<div class="form-group">
<label for="bno">번호</label>
<input type="text" class="form-control" id="bno" name="bno" readonly value="${board.bno }">
</div>
<div class="form-group">
<label for="title">제목</label>
<input type="text" class="form-control" id="title" name="title" value="${board.title }">
</div>
<div class="form-group">
<label for="content">내용</label>
<textarea class="form-control" id="content" rows="3" name="content">${board.content }</textarea>
</div>
<div class="form-group">
<label for="writer">작성자</label>
<input type="text" class="form-control" id="writer" name="writer" readonly value="${board.writer }">
</div>
<button type="submit" class="btn btn-primary">수정하기</button>
</form>
<!-- footer -->
<%@ include file="/WEB-INF/views/include/footer.jsp" %>
</div>
</body>
</html>
결론적으로 list에서 클릭한 글번호를 따라 get을 보여주고
get에서 수정하기를 클릭하면 제이쿼리를 통해 작성한 자바스크립트가 작동된다
이 작동될 때 GetMapping는 get과 같은 형식으로 구성되어 있는 것을 활용한다
이후 modify로 들어가게 되고 post를 연결해서 write와 같은 작업을 사용한다
대신 value 값을 생성해 get에서 가져온 값을 넣고 id를 일치시켜서 불러온 후
몇가지만 수정값을 변경할수 있도록 readonly을 줘서 수정하고 다시 list.jsp로 리턴값을 넣어 보낸다
댓글남기기