ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MVC게시판] 게시판 글쓰기
    Web (Spring ) 2016. 8. 9. 21:37

    BoardController.java

    /* 

    insert 하기전에 우선 write 창을 열어줘야 하기에 GET 방식을 선언

     ModelAndView mv = new ModelAndView("/board/write"); 다음과 같이 열고자 하는 JSP를 return을 해준다.

    form action을 통해 insert를 해야하기 때문에, POST방식을 선언 한다.

    boardService.boardWrite(map.getMap());

    39번 라인은 잠시 넘어가보자.


    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
    38
    39
    40
    41
    /**
          * @Method Name : openWriteView
          * @작성일 : 2016. 8. 5.
          * @작성자 : BIN
          * @변경이력 : 
          * @Method 설명 : 게시글 작성창
          * @param map
          * @return
          */
        
        @RequestMapping(value="/board/write.do",method=RequestMethod.GET)
        public ModelAndView openWriteView(CommandMap map){
            ModelAndView mv = new ModelAndView("/board/write");
            System.out.println("into writeBoard...");
            return mv;
        }
        
        /**
          * @Method Name : writeView
          * @작성일 : 2016. 8. 5.
          * @작성자 : BIN
          * @변경이력 : 
          * @Method 설명 : 게시글 작성
          * @param map
          * 
          * @return
         * @throws UnsupportedEncodingException 
         * @throws UnknownHostException 
          */
        @RequestMapping(value="/board/write.do", method=RequestMethod.POST)
        public ModelAndView writeView(CommandMap map, 
                                        HttpServletRequest request, 
                                        HttpServletResponse response) 
                                        throws UnknownHostException{
     
            ModelAndView mv = new ModelAndView("redirect:/board/list.do");
            boardService.boardWrite(map.getMap());
            System.out.println("inesrt Board...");
            mv.addObject("REG_IP", map.get("REG_IP").toString());
            return mv;
        }

    cs


    BoardService.java

    /*

    간단하다. insert하기에 return type은 void

     */

    1
    2
    //게시글 작성
        void boardWrite(Map<String, Object> map) throws UnknownHostException;



    BoardServiceImpl.java

    /* 

    5번~6번 로컬호스트의 IP를 get한다.

    map에 다음과 같이 put을 해준다.

    map.put("REG_IP", regip);

    (위에 컨트롤러를 보자 39번라인에서 맵에서 get해와서 모델객체를 String 변수에 담아 보내주는것을 알 수 있다.)

    dao 선언

    */

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Override
        public void boardWrite(Map<String, Object> map) throws UnknownHostException {
            
            /*아이피 가져오기*/
            InetAddress local = InetAddress.getLocalHost();
            String regip = local.getHostAddress();
            System.out.println("IP : "  + regip.toString());
            map.put("REG_IP", regip);
            boardDAO.boardWrite(map);
        }



    BoardDAO.java

    /* 

    간단하다. namespace + queryname 명시 해주고 map에 담는다.

     */

    1
    2
    3
    4
        public void boardWrite(Map<String, Object> map) {
            System.out.println("map:" + map.toString());
            insert("board.boardWrite", map);
        }



    Board_SQL.xml

    /* 

    parameterType="hashmap"

     */

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
        <!-- 게시글 작성 -->
        <insert id="boardWrite" parameterType="hashmap">
     
            INSERT INTO BOARD
            (
                BOARDNO,
                WRITER,
                TITLE,
                CONTENTS,
                PASSWORD,
                REG_IP
            )
            VALUES
            (
                board_seq.nextval,
                #{WRITER},
                #{TITLE},
                #{CONTENTS},
                #{PASSWORD},
                #{REG_IP}
            )
                
        </insert> 



    Result



Designed by Tistory.