본문 바로가기
Web/JSP

JSP #17 JSTL-3 fmt 라이브러리

by 언덕너머에 2015. 2. 12.

 

기능

태그

설명

 숫자 날짜 형식 

 formatNumber

 숫자를 양식에 맞춰서 출력한다.

 formatDate

 날짜 정보를 담고 있는 객체를 포맷팅하여 출력할 때 사용한다.

 parseDate

 문자열을 날짜로 파싱한다.

 parseNumber

 문자열을 숫자로 파싱한다.

 setTimeZone

 시간대별로 시간을 처리할 수 있는 기능을 제공한다.

 timeZone

 시간대별로 시간을 처리할 수 있는 기능을 제공한다.

 로케일 지정

 setLocale

 국제화 태그들이 사용할 로케일을 지정한다.

 requestEncoding

 요청 파라미터의 인코딩을 지정한다.

 메시지 처리

 bundle

 태그 몸체에서 사용할 리소스 번들을 지정한다.

 message(param)

 메시지를 출력한다.

 setBundle

 특정 리소스 번들을 사용할 수 있도록 로딩한다.

 

숫자형식

<fmt:formatNumber value="수치 데이터" [type="{number|currency|percent}"

                                                       [pattern="패턴"]

                                                       [currencySymbol="화폐 단위"]

                                                       [groupingUsed="{true|false}"]

                                                       [var="변수 이름"]

                                                       [scope="{page|request|session|application}"]>

<fmt:formatNumber>의 속성

속  성

표현식

타  입

설  명

 value

 true

 String or Number

 형식화할 수치 데이터

 type

 true

 String

 숫자(number), 통화(currency), % 중

 어느 형식으로 표시할 지 지정

 pattern

 true

 String

 사용자가 지정한 형식 패턴

 currencySymbol

 true

 String

 통화 기호. 통화 형식(type="currency")일  때만 적용

 groupingUsed

 true

 boolean

 콤마와 같이 단위를 구분할 때 사용하는 기호를 표시할지

 의 여부를 결정한다. true이면 10,000과 같이 구분 기호가

 사용되며 false이면 10000로 출력된다. 기본값은 true

 var

 false

 String

 출력 결과 문자열을 담는 scope에 해당하는 변수이름

 scope

 false

 String

 var 속성에 지정한 변수의 적용 영역지정

 

날짜형식

<fmt:formatDate value="date" [type="{time|date|both}"]

                                         [dateStyle="{default|short|medium|long|full}"]

                                         [timeStyle="{default|short|medium|long|full}"]

                                         [pattern="customPattern"]

                                         [timeZone="timeZone"]

                                         [var="varName"]

                                         [scope="{page|request|session|application}"]>

<fmt:formatDate>의 속성

속  성

표현식

Type

설  명 

 value

 true

 java.util.Date 

 형식화될 Date와 time

 type

 true

 String

 형식화할 데이터가 시간(time), 날짜(date), 모두(both)

 셋 중 하나를 지정

 dateStyle

 true

 String

 미리 정의된 날짜 형식으로 default, short, medium, long

 , full 넷 중에 하나를 지정

 timeStyle

 true

 String

 미리 정의된 시간 형식으로 default, short, medium, long

 , full 넷 중에 하나를 지정

 pattern

 true

 String

 사용자 지정 형식 스타일

 timeZone

 true

 String 또는

 java.util.TimeZone

 형식화 시간에 나타날 타임존

 var

 false

 String

 형식 출력 결과 문자열을 담는 scope에 해당하는 변수명

 scope

 false

 String

 var의 scope

 

사용 예)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSTL</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>" />
\${now} : ${now} <fmt:formatDate value="${now}" /><br>
date : <fmt:formatDate value="${now}" type="date" /><br>
time : <fmt:formatDate value="${now}" type="time" /><br>
both : <fmt:formatDate value="${now}" type="both" /><br>

default : <fmt:formatDate value="${now}" type="both" dateStyle="default" timeStyle="default" /><br>
short : <fmt:formatDate value="${now}" type="both" dateStyle="short" timeStyle="short" /><br>
medium : <fmt:formatDate value="${now}" type="both" dateStyle="medium" timeStyle="medium" /><br>
long : <fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long" /><br>
full : <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full" /><br>
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초" : <fmt:formatDate value="${now}" pattern="yyyy년 MM월 dd일 hh시 mm분 ss초" /><br>
</body>
</html>

-----결과-----

${now} : Fri Feb 13 14:58:42 KST 2015 2015. 2. 13
date : 2015. 2. 13
time : 오후 2:58:42
both : 2015. 2. 13 오후 2:58:42
default : 2015. 2. 13 오후 2:58:42
short : 15. 2. 13 오후 2:58
medium : 2015. 2. 13 오후 2:58:42
long : 2015년 2월 13일 (금) 오후 2시 58분 42초
full : 2015년 2월 13일 금요일 오후 2시 58분 42초 KST
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초" : 2015년 02월 13일 02시 58분 42초

 

타임존

<fmt:setTimeZone>, <fmt:timeZone>

<fmt:setTimeZone value="timeZone" [var="varName"]

                                                   [scope="{page|request|session|application}"]>

사용 예)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSTL</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>" />
Korea KST : <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full" />
<br>
<fmt:timeZone value="GMT">
Swiss GMT : <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full" />
</fmt:timeZone>
<br>
<fmt:timeZone value="GMT-8">
NewYork GMT-8 : <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full" />
</fmt:timeZone>
</body>
</html>

-----결과-----

Korea KST : 2015년 2월 13일 금요일 오후 3시 14분 01초 KST
Swiss GMT : 2015년 2월 13일 금요일 오전 6시 14분 01초 GMT
NewYork GMT-8 : 2015년 2월 12일 목요일 오후 10시 14분 01초 GMT-08:00

 

Locale

<fmt:setLocale>

사용예)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSTL</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>" />
톰캣 서버의 기본 로케일 : <%= response.getLocale() %>
<br>
<fmt:setLocale value="ko_kr" />
로케일을 한국어로 설정후 로케일 확인 : ${pageContext.response.locale}<br>
통화(currency) : <fmt:formatNumber value="10000" type="currency" /> <br>
날짜 : <fmt:formatDate value="${now}" /><br>
<br>
<fmt:setLocale value="ja_JP" />
로케일을 일본어로 설정후 로케일 확인 : ${pageContext.response.locale}<br>
통화(currency) : <fmt:formatNumber value="10000" type="currency" /> <br>
날짜 : <fmt:formatDate value="${now}" /><br>
<br>
<fmt:setLocale value="en_US" />
로케일을 영어로 설정후 로케일 확인 : ${pageContext.response.locale}<br>
통화(currency) : <fmt:formatNumber value="10000" type="currency" /> <br>
날짜 : <fmt:formatDate value="${now}" /><br>
</body>
</html>

-----결과-----

톰캣 서버의 기본 로케일 : ko_KR
로케일을 한국어로 설정후 로케일 확인 : ko_KR
통화(currency) : ₩10,000
날짜 : 2015. 2. 13

로케일을 일본어로 설정후 로케일 확인 : ja_JP
통화(currency) : ¥10,000
날짜 : 2015/02/13

로케일을 영어로 설정후 로케일 확인 : en_US
통화(currency) : $10,000.00
날짜 : Feb 13, 2015

 

<fmt:reqeustEncoding>

request.setCharacterEncoding()과 같은 역활을 수행

사용예)

<fmt:requestEncoding value="UTF-8" />

 

 

'Web > JSP' 카테고리의 다른 글

JSP #19 Oracle DB - #2 PreparedStatement  (0) 2015.02.15
JSP #18 Oracle DB - #1 SELECT  (0) 2015.02.15
JSP #16 sendRedirect & forward  (0) 2015.02.06
JSP #15 Servlet에서 입력값 한글 지원  (0) 2015.02.05
JSP #14 Spring - 1 Spring Framework  (0) 2015.01.09