Search
Duplicate

[스프링 게시판] 텍스트 줄바꿈 문제

@3/15/2023

줄바꿈 문제

게시글과 댓글의 줄바꿈이 저장 시 공백문자로 저장되어 HTML로 다시 렌더링 될 때 띄어쓰기 문자로 바뀌는 점 해결

해결 방법

<textarea> 태그로 보여주기 - 편집창을 띄워서 출력물을 보여주는 게 마음에 들지 않음
<pre> 태그로 보여주기 - 태그가 하나 더 감싸지는 게 마음에 들지 않음(JS 처리 등에도 번거로워짐)
Java단에서 String.replaceAll() 사용 - OS 개행문자가 다른데 모두 다 잘 먹힐지가 의문
escaping도 해줘야 해서 복잡하다고 함
content = org.springframework.web.util.HtmlUtils.htmlEscape(content); content = content.replaceAll("\n", "<br/>"); <div><c:out value="${content}" escapeXml="false" /></div>
Java
복사
white-space 스타일 사용
<div style="white-space:pre;"><c:out value="${content}" /></div>
Java
복사
이게 제일 간단하고 마음에 듦. JS로 하면 아래처럼
$0.style.whiteSpace = 'pre-wrap’;
Java
복사
본문 부분
<div th:text="${post.content}" class="row px-3" style="white-space: pre-wrap"> 본문 내용 </div>
Java
복사
댓글 부분
<p th:text="${commentListDTO.content}" style="white-space: pre-wrap">댓글 내용</p>
Java
복사
적용 모습

관련 커밋

b1f02be56bcb252d7cff1592395bcbc9ac0f01a2
commit