#10_[spring boot] 게시판 등록 (mybatis 사용)
안녕하세요.
어찌어찌 게시판 등록까지 왔습니다.
이전포스팅 일부 링크 첨부하겠습니다.
[개발/spring boot, gradle, mybatis Project] - #9_[spring boot] 게시판 등록 화면 summernote 웹 에디터 사용
[개발/spring boot, gradle, mybatis Project] - #8_[spring boot] 게시판 목록 출력(페이징 처리, 부트스트랩)
[개발/spring boot, gradle, mybatis Project] - #3_[spring boot] 프로젝트 처음 시작하기(jsp vieeResolver)
저도 이렇게 포스팅을 늘려나가니깐 뿌듯하네요.
이전 포스팅에서 웹 에디터 summernote를 활용하여 화면을 구축하였습니다.
현재 대략 이런 모습입니다.
이제 게시글을 쓰고 저장하는 모듈을 만들어보겠습니다.
jsp body 부분 입니다.
<div class="board_div"> <h2 class="page-header">Write</h2> <form class="form" id="boardSearchVO" name="boardSearchVO"> <input type="hidden" id="pageIndex" name="pageIndex" value="${boardSearchVO.pageIndex}"/> <input type="hidden" id="pageSize" name="pageSize" value="${boardSearchVO.pageSize}"/> <input type="hidden" id="bbs_sno" name="bbs_sno" value="${boardSearchVO.bbs_sno}"/> <input type="hidden" id="usr_id" name="usr_id" value="${boardSearchVO.usr_id}"/> <input type="hidden" id="title" name="title" value="${boardSearchVO.title}"/> </form> <form class="form-horizontal" id="boardForm" name="boardForm" method="post" enctype="multipart/form-data"> <input type="hidden" id="bbs_contents" name="bbs_contents" value=""/> <input type="hidden" id="ntc_yn" name="ntc_yn" value="N"/> <input type="hidden" id="atch_file_sno" name="atch_file_sno" value="0"/> <input type="hidden" id="bbs_sno" name="bbs_sno" value="${boardSearchVO.bbs_sno}"/> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Title</label> <div class="col-sm-10"> <input type="text" class="form-control" id="bbs_title" name="bbs_title" placeholder="Title"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">contents</label> <div class="col-sm-10"> <div id="summernote"></div> </div> </div> <%-- <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">첨부파일</label> <div class="col-sm-10"> <div id="fine-uploader"></div> <!-- Fine Uploader --> <jsp:include page="/resources/fileUpload/all.fine-uploader/lee/division_script.jsp" flush="true" /> </div> </div> --%> </form> <div class="pull-right"><a href="#" class="btn btn-primary btn-success boardAddBtn"><span class="glyphicon glyphicon-pencil"></span> Write</a></div> </div>
그리고 javascript 부분입니다.
$('#summernote').summernote({ placeholder: 'Write contents', height: 400, minHeight: null, // set minimum height of editor maxHeight: null, // set maximum height of editor }); $('.boardAddBtn').click(function(){ var markupStr = $('#summernote').summernote('code'); $("#bbs_contents").val(markupStr); $.ajax({ url: '/board/notice/boardAddPro', data: $("#boardForm").serialize(), type: 'post', dataType: 'json', error: function(){ alert('요청하신 페이지에 문제가 있어 표시할 수 없습니다.'); }, success: function(json){ if(json.result!='0'){ alert('등록을 완료하였습니다.'); $("#boardSearchVO").attr('action', '/board/notice/boardList').submit(); }else{ alert('등록을 실패하였습니다.'); } } }); return false; });
소스코드를 보시면
$('#summernote').summernote << 이부분은
등록 화면에 웹에디터가 출력되는 부분입니다.
실질적인 등록 부분은
boardAddBtn을 클릭한 부분을 보시면 됩니다.
summernote에 입력된 값을 가져오기위해야
$(#summernote).summernote('code')를 이용하였습니다.
그리고 그값을 bbs_contents에 넘겨주었습니다.
그리고 컨트롤러로 값을 넘겨주어 mybatis를 이용해 insert 하였습니다.
BoardService.java
long boardAdd(HttpServletRequest req, BoardVO boardVO);
BoardImpl.java
public long boardAdd(HttpServletRequest req, BoardVO boardVO) {
boardVO.setReg_usr_no(LoginManager.getUsrNo(req));
long inertRowCnt =boardMapper.boardAdd(boardVO);
return inertRowCnt == 0 ? 0 : boardVO.getBlt_rsrc_sno();
}
long inertRowCnt =boardMapper.boardAdd(boardVO);
return inertRowCnt == 0 ? 0 : boardVO.getBlt_rsrc_sno();
ibatis와 mybatis의 retrun 값은 다릅니다.
이유는 이전포스팅에 설명해 두었습니다.
[개발/spring boot, gradle, mybatis Project] - #번외_mybatis inser 이후 return 값이 1인 이유
BoardMapper.java
long boardAdd(BoardVO boardVO);
Board.xml
<insert id="boardAdd" parameterType="lee.domain.BoardVO"> <selectKey resultType="java.lang.Long" keyProperty="blt_rsrc_sno" order="BEFORE"> select seq_ck_blt_rsrc.nextVal from dual </selectKey> insert into ck_blt_rsrc ( blt_rsrc_sno, 컬럼 ) values( #{blt_rsrc_sno}, 컬럼 ) </insert>
이렇게 하면 게시글이 등록이 됩니다.
'개발 > spring boot, gradle, mybatis Project' 카테고리의 다른 글
#번외_[Bootstrap4] 아이콘 사용법 변경 (0) | 2018.10.26 |
---|---|
#11_[spring boot] 게시판 조회 (mybatis 사용) (2) | 2017.12.26 |
#번외_[spring boot] mybatis inser 이후 return 값이 1인 이유 (2) | 2017.12.10 |
#9_[spring boot] 게시판 등록 화면 summernote 웹 에디터 사용 (0) | 2017.12.05 |
#8_[spring boot] 게시판 목록 출력(페이징 처리, 부트스트랩) (29) | 2017.12.03 |
#번외_[spring boot] gradle Lombok 설치 (setter, getter 간소화) (2) | 2017.12.01 |
#번외_[spring boot] mac에서 gradle 프로젝트 git으로 내려받기(git import) (0) | 2017.11.22 |