수정하는 폼과 작동 연결

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로 리턴값을 넣어 보낸다

댓글남기기