ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MVC게시판] 게시판 글 수정&삭제
    Web (Spring ) 2016. 8. 19. 21:23

    BoardController.java


    게시글 수정이라하면 해당 게시글의 고유번호(PK)를 가져와서

    해당게시글의 고유번호를 식별한뒤 기존 data를 보여줘야 한다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /**
          * @Method Name : openUpdJateView
          * @작성일 : 2016. 8. 6.
          * @작성자 : bin
          * @변경이력 : 
          * @Method 설명 : 게시글 수정창 진입
          * @param map
          * @return
          */
        
        @RequestMapping(value="/board/update.do", method=RequestMethod.GET)
        public ModelAndView openUpdJateView(CommandMap map){
            ModelAndView mv = new ModelAndView();
            System.out.println("into updatePage...");
            Map<String,Object> getBoard  = boardService.getBoard(map.getMap());
            mv.addObject("map", getBoard);
            return mv;
        }
        


    GET방식으로 넘겨주며

    view.do와 마찬가지로 getBoard  서비스를 불러온다.

    getBoard라는 변수를 "map" 이라는 String 변수에 담아줘서 

    view에 보내준다.


    이와 같이 view화면에 글 수정하기를

    누르면 해당 게시글 번호를 가져와 수정창에 진입을 할 수 있을 것이다.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    /**
          * @Method Name : updateView
          * @작성일 : 2016. 8. 6.
          * @작성자 : bin
          * @변경이력 : 
          * @Method 설명 : 게시글 수정
          * @param map
          * @return
          */
        
        @RequestMapping(value="/board/update.do", method=RequestMethod.POST)
        public ModelAndView updateView(CommandMap map){
            boardService.updateBoard(map.getMap());
            ModelAndView mv = new ModelAndView("redirect:/board/view.do?BOARDNO="+map.get("BOARDNO"));
            return mv;
        }

    수정창에 진입했으니 수정사항을 기재하고

    updateBoard서비스를 실행하고

    return은 전화면으로 돌아가야한다.

    파라미터 역시 BOADRDNO(PK)를 가져간다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <body>
    <form name="form" method="post">
    <table align="center" width="600" cellpadding="3" cellspacing="0" border="0">
        <tr>
            <td width="100">작성자</td>
            <td><input type="text" name="WRITER" value="${map.WRITER }" size="25"></td>
        </tr>
        <tr>
            <td>제목</td>
            <td><input type="text" name="TITLE" value="${map.TITLE }" size="50"></td>
        </tr>
        <tr>
            <td colspan="2">
            
            <script language="Javascript" src="/Spac_Editor/spac_editor_common.js"></script>
            <script language="Javascript" src="/Spac_Editor/spac_editor.js"></script>
            <link rel="stylesheet" type="text/css" href="/Spac_Editor/spac_editor_common.css">
            <link rel="stylesheet" type="text/css" href="/Spac_Editor/spac_editor.css">
            <script language="Javascript">createEditor('CONTENTS',300,'${map.CONTENTS}');</script>
     
            </td>    
        </tr>
        <tr>
            <td>비밀번호</td>
            <td><input type="password" name="PASSWORD" value="" size="12" maxlength="4"></td>
        </tr>
    </table>
        
    <table align="center" width="600" cellpadding="3" cellspacing="0" border="0">    
        <tr>
            <td colspan="2" align="center"><input type="submit" value="작성완료"></td>    
        </tr>
    </table>
    </form>
    </body>
     
     



    수정화면은 이런식으로 들어간다.

    16번라인 form method는 post 방식으로 보낸다.

    우리는 getBoard라는 변수를 "map'이라는 String에 담아 보냈다

    value는 map에서 해당 bean 객체를 꺼내와서 보여준다.

    29~33번 라인은 spac_editor 스크립트 소스이다.

    너무 허전해보여서 에디터를 붙여놓은것 별 의미는 없다.


    삭제도 마찬가지로

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        /**
          * @Method Name : deleteView
          * @작성일 : 2016. 8. 6.
          * @작성자 : bin
          * @변경이력 : 
          * @Method 설명 : 게시글 삭제
          * @param map
          * @return
          */
        
        @RequestMapping(value="/board/delete.do", method = {RequestMethod.GET, RequestMethod.POST})
        public ModelAndView deleteView(CommandMap map){
            boardService.deleteBoard(map.getMap());
            System.out.println("boardDel...");
            ModelAndView mv = new ModelAndView("redirect:/board/list.do");
            return mv;
        }




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script>
        
        //글 삭제
        function fn_del() {
     
            if (confirm("정말 삭제하시겠습니까??"== true) { //확인
                location.href = "/board/delete.do?BOARDNO="+${map.BOARDNO};
                console.log('success');
            } else {
                console.log('fail');
                return false;
            }
        }
        
    </script>



    이런식으로 해당 파라미터를 가져와서 던져주고

    return은 redirect:/board/list.do로 보내주면 된다.


    BoardService.java

    1
    2
    3
    4
    5
        //게시글 수정
        void updateBoard(Map<String, Object> map);
     
        //게시글 삭제
        void deleteBoard(Map<String, Object> map);



    BoardServiceImpl.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
        @Override
        public void updateBoard(Map<String, Object> map) {
            boardDAO.updateBoard(map);
        }
     
        @Override
        public void deleteBoard(Map<String, Object> map) {
            boardDAO.deleteBoard(map);
        }



    BoardDAO.java

    1
    2
    3
    4
    5
    6
    7
        public void updateBoard(Map<String, Object> map) {
            update("board.updateBoard", map);
        }
     
        public void deleteBoard(Map<String, Object> map) {
            update("board.deleteBoard", map);
        }


    Board_SQL.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        <!-- 게시글 수정 -->
        <update id="updateBoard" parameterType="hashmap">
        
            UPDATE BOARD 
            SET
                TITLE = #{TITLE},
                WRITER = #{WRITER},
                CONTENTS = #{CONTENTS},
                PASSWORD = #{PASSWORD}
            WHERE 
                BOARDNO = #{BOARDNO}
        
        </update>
        
        <!-- 게시글 삭제 -->
        <update id="deleteBoard" parameterType="hashmap">
        
            UPDATE BOARD
            SET
                DEL_YN = 'y'
            WHERE
                BOARDNO = #{BOARDNO}
            
        </update>


    'Web (Spring )' 카테고리의 다른 글

    JSON 정렬  (0) 2016.09.19
    Ajax form.Serialize 안먹힐때  (0) 2016.09.02
    [MSSQL] SPRING + MAVEN + MSSQL 연동방법  (0) 2016.08.19
    네이버 스마트 에디터 연동 + SPRING MVC  (11) 2016.08.18
    팝업창에서 POST방식  (0) 2016.08.18
Designed by Tistory.