DB 줄 바꿈 저장 - DB jul bakkum jeojang

// 단어 치환 : 대상변수, 검색할 단어, 변환할 단어 function strReplace(subject, search, replace) { return subject.split(search).join(replace); }; ... // form name="inputForm", textarea name="content" document.inputForm.content.value = strReplace(document.form.content.value , '\n', ''); ... document.inputForm.submit();

jsp에 textarea 에서 입력값을 넣을때 말고 java에서 문구를 만들어 넣을 때가 있다.

이럴 때 엔터값을 넣고싶다면 아래와 같이 하면 된다.

StringBuffer t_data = new StringBuffer();

t_data.append("안녕하세요." + usr_nm + "님!\r\n");

t_data .append("만나서 반갑습니다 !\r\n");

이런식으로 \r\n 을 입력하면 엔터로 치환되서 db 에 저장된다.

안녕하세요 이번에는 DB에 text 내용을 저장 후 사용할때 줄바꿈 처리에 대해 간단히 알려드리고자 합니다.

 

일단 입력 부분에서 엔터를 사용합니다.

DB 줄 바꿈 저장 - DB jul bakkum jeojang

 

이렇게 DB에 저장 후 그대로 가져오면 다음과 같습니다.

DB 줄 바꿈 저장 - DB jul bakkum jeojang

 

이렇게 줄바꿈이 적용되지 않은채로 나오는 경우가 있습니다.

 

원인은 다음과 같습니다

 

DB에 저장시 "\n" 로 인식하기 때문에 jsp에서 엔터는 <br>태그로만 인식하기 때문에 표시가 안되는 현상입니다.

 

해결방법으로는 크게 2가지가 있습니다.

 

저장할때 개행문자를 변경 or 저장 후 사용할 때 개행문자를 변경

 

입니다.

 

저는 저장은 그대로 하고 데이터를 불러올 때 처리를 소개하도록 하겠습니다.

 

저장 후 사용시에도 2가지 방법으로 알려드리겠습니다.

 

1. JAVA 단에서 변경

2. JSP 단에서 변경(jstl 이용)

 

으로 각각 알려드리도록 하겠습니다.

 

1. JAVA단에서 변경

 

JAVA에서는 다음과 같이 replace 함수를 이용하면 됩니다.

replace("\r\n","<br>")

 

 

저는 스프링에서 사용하기 때문에 VO에 데이터를 담아 사용하는데요.

paramVO.setContent(paramVO.getContent().replace("\r\n","<br>"));

 

해당 내용을 가져와 replace 함수로 변경하여 바로 다시 저장하게끔 설정을 합니다.

 

2. JSP 단에서 변경(jstl 이용)

JSP에서는 fn 함수를 이용합니다.

 

우선 JSP 상단에 라이브러리를 다음과 같이 작성하여 추가합니다.

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<% pageContext.setAttribute("replaceChar", "\n"); %>

 

그리고 사용할 부분에 다음과 같이 작성합니다.

${fn:replace(paramVO.content, replaceChar, "<br/>")}

 

구현 결과를 보시면 다음과 같습니다.

 

DB 줄 바꿈 저장 - DB jul bakkum jeojang

 

참고로 jstl로 반대로 하는 방법은 다음과 같습니다.

 

아까와 마찬가지로 상단에 선언시 <br/> -> <br> 로 변경

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<% pageContext.setAttribute("replaceChar", "<br>"); %>

 

\n을 사용하기 위해서 \\를 두번 사용해야 합니다.

${fn:replace(paramVO.content, replaceChar, "\\n")}

 

이렇게 사용하시면 아까와 반대로 변경이 가능합니다.

 

자 이렇게 스프링에서 java, jstl을 이용한 방법을 알려드렸습니다.

 

본인이 좋아하시는 방법에 맞게 사용하시면 될것 같습니다.

 

감사합니다.

공유하기

게시글 관리

구독하기배씨의 프로그래밍

저작자표시

  • 카카오스토리
  • 트위터
  • 페이스북

'프로그래밍 > 스프링[Spring]' 카테고리의 다른 글

[자바스크립트] append, prepend, after, before 설명과 사용방법  (0)2019.08.09[jsp] function(e) 에서 e 는 무엇인가?  (0)2019.07.31자바 날짜[Date] 비교하는 방법[스프링]  (0)2019.07.09[스프링] 스프링 시큐리티 핸들러 생성하기[로그인 성공/실패 처리]  (0)2019.07.05네이버 클라우드 플랫폼 - 새로운 네이버 지도 이용하기  (0)2019.07.03

파이어베이스로 자바스크립트(javascript) 관련 토이프로젝트 진행하던 도중

유저로부터 받은 text input에 줄바꿈 문자를 DB에 저장할 때 어떻게 저장하고

그렇게 DB에 저장된 text를 화면단으로 가져올 때는 어떻게 처리해서 가져와야 하는지 몰라서

해당 문제에 대한 해결책을 담고 있는 사이트들을 공유한다.

 

 

MDN - innerText 속성

 

https://developer.mozilla.org/ko/docs/Web/API/HTMLElement/innerText

 

Node.innerText - Web API | MDN

HTMLElement 인터페이스의 innerText 속성은 요소와 그 자손의 렌더링 된 텍스트 콘텐츠를 나타냅니다.

developer.mozilla.org

 

input태그는 아니고, textarea 태그에서 엔터값을 자동 줄바꿈으로 처리하는 방법

 

https://webprogrammer.tistory.com/1271

 

html textarea 에서 엔터 값을 자동 줄바꿈으로 처리하는 방법

 \n만 치환하면 안된다 \r\n 전부다 해줘야 한다.--(이것 때문에 고생했슴) 1. textarea 에 엔터값을 그냥 DB에 넣어서 처리 할 경우 --------------------------------------------------- DB상에는 엔터값이 먹..

webprogrammer.tistory.com

 

정규식을 이용한 개행문자 치환

 

https://rockdrumy.tistory.com/1369

 

[JavaScript] TEXTAREA 줄바꿈 저장

그냥 아무런 조치없이 저장하고 조회하게되면 줄바꿈이 안먹히고 한줄로 조회가 된다. 그걸해결하기위해 저장할때는 이렇게 정규식을 이용해 줄바꿈을 태그로 바꾸고 저장. $('#text').val().replace(