댓글 웹 레이어 만들기

컨트롤러 추가

 


/src/main/java/v2/mvc/spring/blog/controller/BlogController.java

package v2.mvc.spring.blog.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import v2.mvc.spring.blog.service.CommentService;
import v2.mvc.spring.blog.vo.CommentAddRequestVO;
import v2.mvc.spring.blog.vo.CommentResponseVO;

@Controller
@RequestMapping("/comment")
public class CommentController {

    @Autowired
    private CommentService commentService;

    @PostMapping("/add")
    @ResponseBody
    public CommentResponseVO add(CommentAddRequestVO commentAddRequestVO) {
        return this.commentService.add(commentAddRequestVO);
    }
}
  1. controller 패키지 아래에 CommentController 클래스를 생성합니다.
  2. 상기 코드를 입력합니다.
  3. 자동 불러오기를 통해 패키지들을 불러옵니다.

잭슨 메이븐 다운로드

 


pom.xml

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.10</version>
</dependency>
  1. pom.xml 파일을 엽니다.
  2. jackson 의존성을 추가합니다.
  3. 메이븐 빌드를 합니다.

댓글 추가 영역 만들기

 

<div>
    <input type='text' id='cmtBdy' style='width:40%' />
    <input type='password' id='tmpPw' style='width:40%' />
    <input type='button' id='btn_comment_add' value='댓글 쓰기' />
</div>
  1. read.jsp 파일을 엽니다.
  2. 삭제 버튼 아래에 html 코드를 입력합니다.

jQuery CDN 접속

  1. 브라우저로 https://releases.jquery.com/ 에 접속합니다. 혹은 검색창에 jquery cdn 이라고 검색한 후 들어가셔도 됩니다.
  2. jQuery Core에서 minified를 클릭합니다.

Content Delivery Network 주소 복사

 

  1. 모달 팝업이 보입니다.
  2. 복사 버튼을 눌러서 클립보드로 복사합니다.

댓글 추가 자바스크립트 작성


/src/main/webapp/WEB-INF/views/blog/read.jsp

<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script type="text/javascript">
    $("#btn_comment_add").click(function(){
        let blgContSeq = ${blogCont.BLG_CONT_SEQ};
        let cmtBdy = $("#cmtBdy").val();
        let tmpPw = $("#tmpPw").val();
        let send_data = {};
        if (tmpPw == ""){
            send_data = {
                "blgContSeq": blgContSeq,
                "cmtBdy" : cmtBdy
            };
        }else{
            send_data = {
                "blgContSeq": blgContSeq,
                "cmtBdy" : cmtBdy,
                "tmpPw" : tmpPw,
            };
        }

        $.post( "/comment/add", send_data, function( data ) {
            console.log(data);
        });
    });
</script>
  1. read.jsp 파일을 엽니다.
  2. jquery cdn 에서 복사한 내용을 붙여넣습니다.
  3. <script type="text/javascript"> 부터 </script> 까지 입력합니다.

댓글 추가 ajax 확인하기

  1. 브라우저로 상세보기 화면으로 들어갑니다.
  2. 테스트 데이터를 입력해 봅니다.
  3. 댓글 쓰기 버튼을 클릭합니다.
  4. STS 콘솔에서 오류가 없는지 살펴봅니다.
  5. sqldeveloper 에서 데이터가 저장되었는지 확인합니다.

네트워크 탭 진입

  1. 브라우저에서 F12 버튼을 클릭해서 개발자 모드를 켭니다.
  2. 네트워크 탭을 클릭합니다.
  3. 네트워크 정보가 있는지 확인해 봅니다. 없다면 다시 한번 댓글을 써서 전송 버튼을 클릭합니다.
  4. 네트워크 정보가 보여지는지 확인합니다.

네트워크 정보 상세

  1. 네트워크 탭에서는 개별 요청이 보여집니다.

네트워크 요청 정보 보기

  1. 요청을 클릭하면 서버로 전송한 상세 정보를 볼 수 있습니다.

네트워크 응답 정보 보기

  1. 서버가 보내준 응답 정보도 브라우저에서 확인 가능합니다.