글 쓰기는 리스트에서 넘겨 받은 그룹 번호(bgno)를 hidden 태그로 가지고 있다가,

서버로 전송 시 게시 글과 같이 전송되어 저장되고,

글 리스트로 돌아갈 때 파라미터로 넘겨준다.

글 수정 일 때는 테이블에서 같이 읽어와서 bgno 변수로 넘겨 준다.

이중 처리 하는 이유는 다음 코드에서 보듯이

글쓰기 일 때는 파라미터로 받아오고(getParameter),

수정 일 때는 테이블에서 읽어오기 때문이다(boardInfo.getBgno()).

    @RequestMapping(value = "/board8Form")
    public String boardForm(HttpServletRequest request, ModelMap modelMap) {
        String bgno = request.getParameter("bgno");
        String brdno = request.getParameter("brdno");
        if (brdno != null) {
            BoardVO boardInfo = boardSvc.selectBoardOne(brdno);
            List<?> listview = boardSvc.selectBoard8FileList(brdno);
       
            modelMap.addAttribute("boardInfo", boardInfo);
            modelMap.addAttribute("listview", listview);
            bgno = boardInfo.getBgno();
        }
        modelMap.addAttribute("bgno", bgno);
       
        return "board8/BoardForm";
    }

Board8Ctr.java

JSP에서는 다음 코드와 같이

컨트롤에서 넘겨 받은 그룹 번호(bgno)를 hidden 태그로 가지고 있도록 하면 된다.

<input type="hidden" name="bgno" value="<c:out value="${bgno}"/>">
<input type="hidden" name="brdno" value="<c:out value="${boardInfo.brdno}"/>">
<a href="#" onclick="fn_formSubmit()">저장</a>

Board8Ctr.jsp

글을 저장하는 컨트롤(board8Save)이나 서비스에서 특별히 처리할 것은 없다.

그룹 번호(bgno)는 다른 게시물 정보(BoardVO boardInfo)와 같이 컨트롤로 전송되기 때문에

저장 SQL문만 다음과 같이 수정하면 된다.

<insert id="insertBoard8" parameterType="gu.board8.BoardVO" >
        <selectKey resultType="String" keyProperty="brdno" order="BEFORE">
            SELECT IFNULL(MAX(BRDNO),0)+1 FROM TBL_BOARD
        </selectKey>
   
        INSERT INTO TBL_BOARD(BGNO, BRDNO, BRDTITLE, BRDWRITER, BRDMEMO, BRDDATE, BRDHIT, BRDDELETEFLAG)
        VALUES (#{bgno}, #{brdno}, #{brdtitle}, #{brdwriter}, #{brdmemo}, NOW(), 0, 'N' )
</insert>

Board8Ctr.xml

글이 저장되고 나면 다음과 같이

글 리스트로 돌아갈 때(redirect) 파라메터로 그룹 번호(bgno)를 넘겨준다.

그렇지 않으면 오류가 발생하거나 등록한 글을 찾을 수 없다.

    @RequestMapping(value = "/board8Save")
    public String boardSave(HttpServletRequest request, BoardVO boardInfo) {
        String[] fileno = request.getParameterValues("fileno");
       
        FileUtil fs = new FileUtil();
        List<FileVO> filelist = fs.saveAllFiles(boardInfo.getUploadfile());

        boardSvc.insertBoard(boardInfo, filelist, fileno);

        return "redirect:/board8List?bgno=" + boardInfo.getBgno();
    }

Board8Ctr.java


'Java > 게시판 8: 멀티게시판' 카테고리의 다른 글

1. 멀티 게시판 준비  (0) 2016.06.04
2. 글 리스트  (0) 2016.06.04
3. 글 읽기 / 삭제  (0) 2016.06.04

+ Recent posts