Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 이넘아
- 이넘
- forEach
- properties editor
- Vo
- STS
- 줄바꿈
- 컬럼명 조회
- 개행문자
- 카멜케이스 변환
- Spring Boot
- message.properties
- enum
- dto생성
- JSTL
- 개행문자 치환
- java
- 테이블명 조회
- 로컬서버 바라보기
- Type Convert
- ㅋㅅㅋ
- spring-boot
- vo생성
- Stream
- DTO
- Profile
- groupingby
- 슬로우 쿼리 설정정보 조회
- 람다식
- 테이블 컬럼 카멜 변환기
Archives
- Today
- Total
코더가 되고싶은 남자
[JSTL] DB에서 Select 문자열 데이터 <br> JSP 개행문자 적용 본문
반응형
웹 개발 프로젝트 진행 시 보통 DB 컬럼 내용글 중 개행문자가 \n로 저장되어있다.
그런데 이번엔 \n가 아닌 <br>로 저장 해놓겠다는 통보를 받았다.
"컬럼 내용<br>내용 내용내용";
위 내용대로 DB에서 그대로 화면까지 데이터를 가져와 뿌려주면 문자로 인식하여 <br>까지 화면에 출력된다.
<br>를 \n으로 치환 할 것이다.
DB에 저장된 해당 내용을 jsp 까지 가져와서 jstl 태그로 foreach돌려서 출력 할때 내용 중
\n -> <br> 로 바꾸면 개행문자가 적용 되던데
<br> -> \n로 바꾸면 줄바꿈이 안된다. -ㅅ -;;;
(java에서 <br>을 \n로 replaceAll로 가공해서 화면까지 가져와도 안됨)
이를 해결하기위해 두가지 방법을 사용했다.
- jsp파일 맨 위에 선언 -
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> //${fn:}을 사용하려면 선언해야함
<%
pageContext.setAttribute("ln", "\n");
pageContext.setAttribute("br", "<br>");
%>
1. style 적용
//자바에서 가공한 colltInfoList 데이터
<c:forEach items="${colltInfoList}" var="item" varStatus="idx">
<span style="white-space:pre"><c:out value="${fn:replace(item.colltPeriod, br, ln)}"></c:out></span>
//style="white-space:pre" 스타일 먹여주면 된다.
</c:forEach>
2. <pre></pre> 태그 사용
//자바에서 가공한 colltInfoList 데이터
<c:forEach items="${colltInfoList}" var="item" varStatus="idx">
<pre><span style="white-space:pre"><c:out value="${fn:replace(item.colltPeriod, br, ln)}"></c:out></span></pre>
</c:forEach>
3. 하지만 escapeXml="false" 이걸 쓰면 굳이 위에 것들을 안써도 된다.
<c:out value="${item.colltPeriod}" escapeXml="false"></c:out>
//escapeXml="false" 를 입력하면 문자열 내에 태그문자를 자동 인식하여 출력해줌(default는 true 상태)
내가 사용해본 결과 둘다 <br> -> \n로 치환해서 줄바꿈이 잘 적용된다.
하지만 <pre>태그로 내용을 감싸면 글자체가 바뀐다고 표현해야하나 ? 공백이나 글자 크기가 변형되어 출력된다.