55. 글쓰기 완료
by 볼빵빵오춘기BoardController
// User 권한이 필요
@GetMapping("/board/saveForm")
public String saveForm(){
return "board/saveForm";
}
saveForm.jsp
더보기
https://summernote.org/getting-started/#for-bootstrap-4 썸머노트 참고해서 사용하여 만들었다.
(썸머노트 홈 > get started > For bootstrap4)
※ 썸머노트 사용 시 주의 사항
- summernote textarea는 id를 들고 있어야한다.
- 연결 script 확인한다.
<%@ page language="java" contentType="text/html;charset=UTF-8 " pageEncoding="UTF-8"%>
<%@ include file="../layout/header.jsp"%>
<div class="container">
<h2>Stacked form</h2>
<form>
<div class="form-group">
<label for="title">Title:</label>
<input type="text" class="form-control" id="title" placeholder="Enter title" name="title">
</div>
<div class="form-group">
<label for="content">Content:</label><br>
<textarea class="form-control summernote" rows="5" id="content"></textarea>
</div>
</form>
<button id="btn-save" class="btn btn-primary">글작성완료</button>
</div>
<script>
$('.summernote').summernote({
placeholder: 'Write Content',
tabsize: 2,
height: 300
});
</script>
<script src="/js/board.js"></script>
<%@ include file="../layout/footer.jsp"%>
board.js
let index = {
init:function(){
$("#btn-save").on("click",()=>{ // function(){} 대신 ()=> 사용한 이유는 this를 바인딩하기 위해서
this.save();
});
},
save: function(){
let data = {
title: $("#title").val(),
content: $("#content").val()
}
$.ajax({
type: "POST",
url: "/api/board",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function(resp){
// alert(resp);
alert("글쓰기가 완료 되었습니다.")
location.href="/";
}).fail(function(error){
alert("js 글쓰기완료 호출"+JSON.stringify(error));
});
},// save end
}// index end
index.init();
BoardApiController
@PostMapping("/api/board")
public ReplySaveRequestDto.ResponseDto<Integer> save(@RequestBody Board board, @AuthenticationPrincipal PrincipalDetail principal){
boardService.글쓰기(board,principal.getUser());
return new ReplySaveRequestDto.ResponseDto<Integer>(HttpStatus.OK.value(),1);
}
BoardRepository
public interface BoardRepository extends JpaRepository<Board, Integer> {
}
BoardService
public class BoardService {
@Autowired
private BoardRepository boardRepository;
@Transactional
public void 글쓰기(Board board,User user){
board.setCount(0);
board.setUser(user);
System.out.println("BoardService 글쓰기 호출");
boardRepository.save(board);
}
}
'강의 따라하기 > blog' 카테고리의 다른 글
58. 글 상세보기 (1) | 2024.01.04 |
---|---|
56. 글목록 보기 (0) | 2024.01.04 |
54. 스프링 시큐리티 로그인 (1) | 2024.01.04 |
53. XSS와 CSRF (1) | 2024.01.04 |
52. 비밀번호 해쉬 후 회원가입하기 (0) | 2024.01.03 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기