// 단어 치환 : 대상변수, 검색할 단어, 변환할 단어 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에 저장시 "\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="//java.sun.com/jsp/jstl/functions"%> <% pageContext.setAttribute("replaceChar", "\n"); %>
그리고 사용할 부분에 다음과 같이 작성합니다.
${fn:replace(paramVO.content, replaceChar, "<br/>")}
구현 결과를 보시면 다음과 같습니다.
참고로 jstl로 반대로 하는 방법은 다음과 같습니다.
아까와 마찬가지로 상단에 선언시 <br/> -> <br> 로 변경
<%@ taglib prefix="fn" uri="//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 속성
//developer.mozilla.org/ko/docs/Web/API/HTMLElement/innerText
Node.innerText - Web API | MDN
HTMLElement 인터페이스의 innerText 속성은 요소와 그 자손의 렌더링 된 텍스트 콘텐츠를 나타냅니다.
developer.mozilla.org
input태그는 아니고, textarea 태그에서 엔터값을 자동 줄바꿈으로 처리하는 방법
//webprogrammer.tistory.com/1271
html textarea 에서 엔터 값을 자동 줄바꿈으로 처리하는 방법
\n만 치환하면 안된다 \r\n 전부다 해줘야 한다.--(이것 때문에 고생했슴) 1. textarea 에 엔터값을 그냥 DB에 넣어서 처리 할 경우 --------------------------------------------------- DB상에는 엔터값이 먹..
webprogrammer.tistory.com
정규식을 이용한 개행문자 치환
//rockdrumy.tistory.com/1369
[JavaScript] TEXTAREA 줄바꿈 저장
그냥 아무런 조치없이 저장하고 조회하게되면 줄바꿈이 안먹히고 한줄로 조회가 된다. 그걸해결하기위해 저장할때는 이렇게 정규식을 이용해 줄바꿈을 태그로 바꾸고 저장. $('#text').val().replace(