SpringBoot 게시글 기본 업로드 VS TOAST UI Editor 로 업로드
2024. 4. 24. 11:28ㆍFull Stack Course 풀스택과정/SPRING
728x90
배울내용:
SpringBoot 게시글 기본 업로드
TOAST UI Editor 로 업로드
SpringBoot 게시글
SpringBoot 새 글쓰기
스프링부트 새 글쓰기
스프링부트 게시글
토스트 UI 에디터 사용법
전체 코드는 아래의 깃헙 주소에서 확인가능하다
https://github.com/angrybird24/SpringBoot_Projects
새글쓰는 코드이다 여기서 가장 눈여겨 봐야 할 부분은 제목과 내용을 넣는 부분이다
<div className="container mt-5">
<div className="row">
<div className="col-lg-8">
<article>
<!-- 아이디 정보 저장 -->
<input type="hidden" id="article-id" th:value="${diary.id}"/>
<header className="mb-4">
<input type="text" className="form-control" placeholder="제목" id="title" th:value="${diary.title}"/>
</header>
<input type="date" className="form-control mt-2" placeholder="날짜" id="start" th:value="${diary.start}"/>
<section className="mb-5">
<textarea className="form-control h-25" rows="10" placeholder="내용" id="content"
th:text="${diary.content}"></textarea>
</section>
<!-- id가 있을 때는 [수정] 버튼을, 없을 때는 [등록] 버튼이 보이게 함 -->
<button th:if="${diary.id} != null" type="button" id="modify-btn"
className="btn btn-primary btn-sm">수정
</button>
<button th:if="${diary.id} == null" type="button" id="create-btn"
className="btn btn-primary btn-sm">등록
</button>
</article>
</div>
</div>
</div>
아래의 부분이 기존에 방식으로 하는것이고
<header className="mb-4">
<input type="text" className="form-control" placeholder="제목" id="title" th:value="${diary.title}"/>
</header>
<section className="mb-5">
<textarea className="form-control h-25" rows="10" placeholder="내용" id="content"
th:text="${diary.content}"></textarea>
</section>
새로만드는 페이지에 아래의 TOAST UI Editor 를 넣어준다
<h2 style="text-align: center;">TOAST UI Editor 글쓰기 페이지</h2>
<div id="content21">
</div>
<script src="https://uicdn.toast.com/editor/latest/toastui-editor-all.min.js"></script>
<script>
const editor = new toastui.Editor({
el: document.querySelector('#content21'), // 에디터를 적용할 요소 (컨테이너)
height: '500px', // 에디터 영역의 높이 값 (OOOpx || auto)
initialEditType: 'markdown', // 최초로 보여줄 에디터 타입 (markdown || wysiwyg)
initialValue: '', // 내용의 초기 값으로, 반드시 마크다운 문자열 형태여야 함
previewStyle: 'vertical', // 마크다운 프리뷰 스타일 (tab || vertical)
placeholder: '내용을 입력해 주세요.',
});
</script>
그리고 기존에 썼던 Content는 지워준다
<!--<section class="mb-5">
<textarea class="form-control h-25" rows="10" placeholder="내용" id="content21" th:text="${diary.content}"></textarea>
</section>-->
그리고 Diary.js 파일에 가서 content: 부분에
document.getElementById('title').value,
이런식 대신
editor.getHTML(),
이런식으로 쓰면 끝이다
if (createButton) {
// 등록 버튼을 클릭하면 /api/diaries 요청을 보낸다
createButton.addEventListener('click', event => {
body = JSON.stringify({
title: document.getElementById('title').value,
content: editor.getHTML(),
});
보이는건 아래처럼 보인다
그리고 Editor에 있는 기능중 굵은글씨, 이탈릭 글씨체, 1,2,3,4 ol ul 같은 기능들을 넣고 등록을 눌러주면
다른 코드는 변함없이
아래처럼 등록이 된다
728x90
'Full Stack Course 풀스택과정 > SPRING' 카테고리의 다른 글
스프링부트 비동기식 방명록 만들기 ( 1 ) (0) | 2024.05.06 |
---|---|
SpringBoot - TOAST UI Editor 로 게시글 사진 업로드 (0) | 2024.04.24 |
SpringBoot - OAuth2 로 구글 로그인 (2) OAuth2 실행테스트 (0) | 2024.04.23 |
SpringBoot - OAuth2 로 구글 로그인 (1) (토큰 발급받기) (0) | 2024.04.23 |
Intellij 로 만든 jar 파일 AWS 서버 구축 (0) | 2024.04.09 |