본문 바로가기
Backend/Servlet & JSP

[Servlet & JSP] JSTL format과 functions

by Forsaken Developer 2023. 5. 31.
728x90
728x90

[Servlet & JSP] JSTL format과 functions

JSTL format

format 라이브러리는 JSP페이지에서 날짜, 숫자 등을 포맷팅 할 때 사용된다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

먼저 core 라이브러리와 fmt 라이브러리를 import 한다.

<c:set var="number" value="123456789"/>
<fmt:formatNumber value="${number}" groupingUsed="true"/> <br>

fmt 태그의 formatNumber를 사용하면 숫자의 포맷을 다양한 형식으로 출력할 수 있다.

groupingUsed가 true일 경우 숫자의 1000단위 마다 ',' 를 붙여준다.

<fmt:formatNumber value="1.23456789" pattern="#.##"/> <br>
<fmt:formatNumber value="1.2" pattern="#.##"/> <br>
<fmt:formatNumber value="1.2" pattern="#.00"/> <br>

parttern이라는 속성으로 소수점에 관련된 포맷을 정할 수 있다.

#으로 자리수를 정해줄 수 있으며 #을 사용하면 자리수가 부족할 때 자리수를 채우지 않는다.

자리수를 강제로 맞춰야 할 경우에 #대신 0을 사용하면 부족한 자리수에 0을 채워준다.

<fmt:formatNumber value="0.12" type="percent"/> <br>

type 속성에 percnet로 설정하면 실수 값을 백분율로 환산하여 출력한다.

<fmt:formatNumber value="123456789" type="currency" currencySymbol="$"/> <br>

type 속성에 currency로 설정하면 시스템 상의 나라에 맞는 화폐의 통화 기호를 앞에 출력하고 currencySymbol로 직접 기호를 설정할 수도 있다.

<c:set var="today" value="<%= new java.util.Date()%>"/>
오늘 날짜 : <fmt:formatDate value="${today}" type="date"/> <br>
현재 시간 : <fmt:formatDate value="${today}" type="time"/> <br>
오늘 날짜와 현재 시간 : <fmt:formatDate value="${today}" type="both"/> <br>

fmt 태그의 formatDate를 사용하면 날짜의 포맷을 다양한 형식으로 출력할 수 있다.

type 속성에 date를 주면 날짜만 기본 포맷에 맞게 출력하고 time을 주면 시간만 기본 포맷에 맞게 출력한다.

날짜와 시간 모두 출력하고 싶을 때는 both를 사용한다.

<fmt:formatDate value="${today}" type="both" dateStyle="default" timeStyle="default"/> <br>
<fmt:formatDate value="${today}" type="both" dateStyle="short" timeStyle="short"/> <br>
<fmt:formatDate value="${today}" type="both" dateStyle="medium" timeStyle="medium"/> <br>
<fmt:formatDate value="${today}" type="both" dateStyle="long" timeStyle="long"/> <br>
<fmt:formatDate value="${today}" type="both" dateStyle="full" timeStyle="full"/> <br>

dateStyle과 timeStyle 속성은 default, short, medium, long, full가 존재하고 위와같이 출력할 수 있다.

<fmt:formatDate value="${today}" type="date" pattern="yyyy/MM/dd (E)"/> <br>
<fmt:formatDate value="${today}" type="time" pattern="(a) hh:mm:ss"/> <br>

날짜와 시간에 대한 포맷을 원하는 포맷으로 출력할 수 있다.

pattern이라는 속성에 사용할 수 있는 패턴 기호를 사용한다.

JSTL functions

이 라이브러리는 JSP 페이지에서 문자열 처리와 관련된 함수를 제공한다.

문자열에서 특정 문자열을 찾거나, 문자열을 대문자 또는 소문자로 변환하는 등의 작업을 수행할 수 있다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

먼저 core 라이브러리와 fn이브러리를 import 한다.

<c:set var="str" value="Hello World"/>
${fn:contains(str,'hello')} <br>

contains를 통해서 찾으려는 문자열이 비교하려는 문자열에 포함되는지 참, 거짓 값을 반환한다.

${fn:containsIgnoreCase(str,'hello')} <br>

contains를 사용하면 대소문자를 구분하지 않아서 대소문자 구분없이 문자열을 비교하려면 containsIgnoreCase를 사용한다.

${fn:toUpperCase(str)} <br>
${fn:toLowerCase(str)} <br>

toUpperCase와 toLowerCase로 문자열을 모두 대문자, 소문자로 변환한다.

${fn:indexOf(str,'World')} <br>

indexOf로 특정 문자열이 몇 번에 인덱스부터 시작하는지 인덱스를 반환한다.

${fn:replace(str,'Hello','Bye')} <br>

replace를 사용하면 특정 문자열을 다른 문자열로 대체할 수 있다.

${fn:length(str)} <br>

length를 사용하면 특정 문자열의 길이를 반환한다.

${fn:substring(str,6,11)} <br>

substring을 사용하여 자르려는 문자열의 시작 인덱스부터 마지막 인덱스 전까지의 문자열을 반환한다.

 

728x90
반응형

'Backend > Servlet & JSP' 카테고리의 다른 글

[Servlet & JSP] JSTL core  (0) 2023.05.30
[Servlet & JSP] JSP EL 표현식  (0) 2023.05.29
[Servlet & JSP] JSP 태그 종류  (0) 2023.05.28
[Servlet & JSP] JSP의 역할  (0) 2023.05.27
[Servlet & JSP] 서블릿 listener  (0) 2023.05.26

댓글