글 쓰기는 리스트에서 넘겨 받은 그룹 번호(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 |