ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mywebproject
    SPRING 2022. 2. 11. 17:11

    쌤과의 마지막 프로젝트라고 하네요!

    이번 프로젝트에서는 일단 댓글 구현부터!

     

    댓글을 구현할 게시판은 전과 동일하게 코드를 작성해 주고, 여러 세팅들을 만져준 다음,

    replyVO, IReplyService, IReplyMapper를 설정해 줍니다.

     

    package com.spring.myweb.reply.mapper;
    import java.util.List;
    import java.util.Map;
    import com.spring.myweb.command.ReplyVO;
    public interface IReplyMapper {
     
    void replyRegist(ReplyVO vo); //댓글 등록
    List<ReplyVO> getList(Map<String, Object> data); //목록 요청
    int getTotal(int bno);//댓글 개수
     
    int pwCheck(ReplyVO vo);//비밀번호 확인
    void update(ReplyVO vo);//댓글 수정
    void delete(int rno);//댓글 삭제
    }
     
    아참, pageVO는 저번 프로젝트에서 복붙했습니다.
     

    댓글을 작성하기 위해 게시판에 글이 등록되어 있어야 하니까 임의의 글들을 등록해 줍니다.

     
    <mapper namespace="com.spring.myweb.command.freeBoard.mapper.IFreeBoardMapper">
     
    <insert id="regist">
    INSERT INTO freeboard(bno, title, writer, content)
    VALUES(freeboard_seq.NEXTVAL, #{title}, #{writer}, #{content})
    </insert>
     
    <select id="getList" resultType="com.spring.myweb.command.FreeBoardVO">
    SELECT * FROM
    (
    SELECT ROWNUM AS rn, tbl.* FROM
    (
    SELECT * FROM freeboard
    ORDER BY bno DESC
    ) tbl
    )
    <![CDATA[
    WHERE rn > #{pageNum} - 1) * #{countPerPage}
    AND rn <= #{pageNum} * #{countPerPage}
    ]]>
    </select>
     
    <select id="getTotal" resultType="int">
    SELECT COUNT(*)
    FROM freeboard
    </select>
     
    <select id="getContent" resultType="com.spring.myweb.command.FreeBoardVO">
    SELECT * FROM freeboard
    WHERE bno = #{bno}
    </select>

     

    </mapper>
     
    댓글 또한 sql과 연동해서 올라갈 테니 작성해 줍니다.
     
    <mapper namespace="com.spring.myweb.reply.mapper.IReplyMapper">
     
    <insert id="replyRegist">
    INSERT INTO freereply(rno, bno, reply, reply_id, reply_pw)
    VALUES(freereplay_seq.NEXTVAL, #{bno}, #{reply}, #{replyId}, #{replyPw})
    </insert>
     
    </mapper>
     
     
    리스트에서 제목을 누르면 상세페이지로 이동할 텐데, 거기서 댓글을 달겠죠?
     
     
    <script>
    $(document).ready(function(){
     
    $('#replyRegist').click(function(){
     
    const bno = $'{article.bno}'; //컨트롤러에서 넘어온 게시글 번호
    const reply = $('#reply').val(); //댓글 내용
    const replyId = $('#replyId').val(); //작성자
    const replyPw = $('#replyPw').val(); //비밀번호
     
    if(reply === '' || replyId === '' || replyPw === ''}]){
    alert('이름, 비밀번호, 내용을 입력하세요.');
    return;
    }
    $.ajax({
    type: 'POST',
    url : '<c:url value="/reply/replyRegist" />',
    data : JSON.stringify(
    {
    "bno":bno,
    "reply":reply,
    "replyId":replyId,
    "replyPw":replyPw
    }
    ),
    dataType: 'text', //서버로부터 어떤 형식으로 받을지 (생략 가능)
    contentType : 'application/json',
    success : function(data){
    console.log('통신 성공!: ' + data );
    $('#reply').val('');
    $('#replyId').val('');
    $('#replyPw').val('');
    getList(); //등록 성공 후 댓글 목록 함수를 호출해서 비동기식으로 목록을 표현
    },
     
    error : function(){
    alert('통신 실패!');
    }
     
    });
     
     
    }); //end jQuery
    </script>
     
    일단 여기까지 하고 수업이 마쳤습니다. 복습 필수우..

    'SPRING' 카테고리의 다른 글

    MyWeb  (0) 2022.02.15
    MyWeb  (0) 2022.02.15
    springwebmvcproject  (0) 2022.02.10
    springwebmvcproject  (0) 2022.02.09
    springwebmvcproject  (0) 2022.02.08
Designed by Tistory.