2013/09/23 - [Java/Java EE] - JSP Expression Language(표현 언어 또는 익스프레션 언어)
2013/09/23 - [Java/Java EE] - JSP JSTL(JSP Standard Tag Library) 라이브러리 추가
2013/09/23 - [Java/Java EE] - JSP JSTL(JSP Standard Tag Library) - 코어 태그
1. 국제화 태그
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
- 특정 지역에 따라 알맞은 메시지를 출력할 경우에 사용한다.
기능분류 | 태그 | 설명 |
로케일 지정 | setLocale | Locale을 지정 |
requestEncoding | 요청 파라미터의 캐릭터 인코딩을 지정 |
메시지 처리 | bundle | 사용할 번들을 지정 |
message | 지역에 알맞은 메시지를 출력 |
setBundle | 리소스 번들을 읽어와 특정 변수에 저장 |
숫자 및 날짜 포맷팅 | formatNumber | 숫자를 포맷팅 |
formatDate | Date 객체를 포맷팅 |
parseDate | 문자열로 표시된 날짜를 분석해서 Date 객체로 변환 |
parseNumber | 문자열로 표시된 날짜를 분석해서 숫자로 변환 |
setTimeZone | 시간대 정보를 특정 변수에 저장 |
timeZone | 시간대를 지정 |
1.1. 로케일 지정 태그
1.1.1. <fmt:setLocale> 태그
- <fmt:setLocale> : 국제화 태그들이 사용할 로케일을 지정한다.
- <fmt:setLocale value="언어코드_국가코드" scope="영역" />
- value : 언어코드_국가코드 형식으로 지정하되 언어코드는 필수이고, 국가코드는 추가지정할 수 있다. 사이에 구분은 바(-) 또는 언더바(_)로 구분한다.
- scope : 영역을 설정한다. 기본값은 page이다.
- 웹 브라우저는 Accept-Language 헤더에 수용 가능한 언어 목록을 전송한다. 이 헤더 값을 이용해서 메시지를 출력해주기 때문에 <fmt:setLocale> 태그는 거의 사용되지 않는다.
<!-- fmt_setLocale.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:setLocale</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>" />
<h1>대한민국</h1>
금액 : <fmt:formatNumber value="1000000" type="currency" /><br>
일시 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<hr><!-- --------------------------------------------------------------------------------------- -->
<h1>미국</h1>
<fmt:setLocale value="en_us"/>
금액 : <fmt:formatNumber value="1000000" type="currency" /><br>
일시 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<hr><!-- --------------------------------------------------------------------------------------- -->
<h1>일본</h1>
<fmt:setLocale value="ja_jp"/>
금액 : <fmt:formatNumber value="1000000" type="currency" /><br>
일시 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<hr><!-- --------------------------------------------------------------------------------------- -->
</body>
</html>
<!--
실행결과
대한민국
금액 : ₩1,000,000
일시 : 2013년 9월 30일 월요일 오후 4시 22분 45초 KST
---------------------------------------------------------------------------------------
미국
금액 : $1,000,000.00
일시 : Monday, September 30, 2013 4:22:45 PM KST
---------------------------------------------------------------------------------------
일본
금액 : ¥1,000,000
일시 : 2013年9月30日 16時22分45秒 KST
-->
1.1.2. <fmt:requestEncoding> 태그
- <fmt:requestEncoding> : 요청 파라미터의 캐릭터 인코딩을 지정한다.
- <fmt:requestEncoding value="캐릭터셋" />
- <% request.setCharacterEncoding("캐릭터셋"); %> 코드와 동일하다.
1.2. 메시지 처리 태그
- 언어권에 따라서 알맞은 메시지를 출력할 수 있다.
1.2.1. <fmt:bundle> 태그
- 사용할 메시지 번들을 지정한다.
- <fmt:bundle basename="리소스번들명"> <fmt:message key="키명"> </fmt:bundle>
- basename : 사용할 리소스 번들 이름
- 번들 파일은 Java.util.Properties 클래스를 사용해서 읽어오기 때문에 확장자가 .properties 이어야 한다.
- 번들이름_언어_국가.properties
- 언어와 국가 자리에는 두글자로 된 언어코드(생략불가 생략이 기본값 en)와 국가코드(생략가능)가 있다.
- prefix : 번들태그의 내부에서 사용되는 message 태거의 key 속성의 값 앞에 자동으로 붙게 될 문자열
1.2.2. <fmt:message> 태그
- 지정한 리소스 번들로부터 메시지를 읽어와 출력한다.
- <fmt:bundle basename="리소스번들명"> <fmt:message key="키명"> </fmt:bundle>
- key : 읽어올 메시지의 키 값
- var : 메시지를 저장할 변수명, 지정할 경우 메시지를 출력하지 않고 var 속성으로 지정한 변수에 메시지를 저장한다.
- scope : 변수가 저장되는 영역 지정
- bundle : <fmt:setBundle> 태그를 사용해서 로딩한 번들로부터 메시지를 읽어올 때 사용
- {n} 부분에 들어갈 값을 지정하기 위해서 <fmt:param> 태그를 사용한다.
<!-- fmt_bundle_message.jsp -->
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%-- <fmt:setLocale value="en" /> --%><!-- 옆 주석을 풀면 언어코드가 en이 된다. -->
<fmt:bundle basename="resource.message">
<fmt:message key="TITLE" var="title"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>${title}</title>
</head>
<body>
<c:if test="${! empty param.id}">
<fmt:message key="GREETING">
<fmt:param value="${param.id}" />
</fmt:message>
</c:if>
<br>
<fmt:message key="VISITOR" />
</body>
</html>
</fmt:bundle>
<!--
한글실행결과 

영어실행결과 

-->
1.2.3. <fmt:setBundle> 태그
- 리소스 번들을 변수로 저장한 후 어디서나 사용할 수 있게 된다.
- <fmt:setBundle var="변수명" basename="리소스번들명" /> <fmt:message bundle="${setBundle에 지정된 변수명}" key="키명" />
- basename : 읽어올 리소스 번들의 이름
- var : 리소스 번들을 저장할 변수 명
- scope : 변수를 저장할 영역
<!-- fmt_bundle_message.jsp -->
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%-- <fmt:setLocale value="en" /> --%><!-- 옆 주석을 풀면 언어코드가 en이 된다. -->
<fmt:setBundle var="message" basename="resource.message"/>
<fmt:message bundle="${ message }" key="TITLE" var="title"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>${ title }</title>
</head>
<body>
<c:if test="${! empty param.id}">
<fmt:message bundle="${ message }" key="GREETING">
<fmt:param value="${param.id}" />
</fmt:message>
</c:if>
<br>
<fmt:message bundle="${ message }" key="VISITOR" />
</body>
</html>
<!--
실행결과는 위와 같다
-->
1.3. 숫자 및 날짜 포맷팅 처리 태그
1.3.1. <fmt:formatNumber> 태그
- 숫자를 양식에 맞춰 문자열(String)로 변환한다.
- <fmt:formatNumber value="숫자값" type="값타입" pattern="패턴" currentCode="통화코드" currencySymbol="통화심볼" groupingUsed="boolean" var="변수명" scope="영역" />
- value : 양식에 맞춰 출력할 숫자
- type : 출력할 양식, number일 경우 숫자, percent일 경우 %, currency일 경우 통화형식으로 출력한다. 기본값은 number
- pattern : 직접 숫자가 출력되는 양식을 지정, java.text.DecimalFormat 클래스에 정의되어있는 패턴을 사용한다.
- #을 지정하면 유효숫자가 있을경우만 표시되고 0을 지정하면 0으로 자리수만큼 채워진다.
- currencyCode : 통화 코드를 지정, 통화코드는 ISO 4217에 지정되어 있다. type의 속성값이 currency일 때 의미가 있다.
- currentSymbol : 통화를 표현할 때 사용할 기호를 표시, type의 속성값이 currency일 때 의미가 있다.
- groupingUsed : 콤마(,)와 같이 단위를 구분할 때 사용되는 기호를 사용할 지의 여부를 결정한다. true일 경우 기호사용, false일 경우 사용되지 않음, 기본값은 ture
- var : 포맷팅 한 결과를 저장할 변수 명, 변수 타입은 String, var 속성을 지정하지 않으면 결과가 곧바로 출력
- scope : 변수를 저장할 영역, 기본값은 page
<!-- fmt_formatNumber.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:formatNumber</title>
</head>
<body>
<c:set var="price" value="12345" />
<fmt:formatNumber value="${ price }" type="number" var="numberType"/><br>
통화 : <fmt:formatNumber value="${ price }" type="currency" currencySymbol="원"/><br>
퍼센트 : <fmt:formatNumber value="${ price }" type="percent" groupingUsed="false" /><br>
숫자 : ${ numberType }<br>
패턴: <fmt:formatNumber value="${ price }" pattern="00000000.000"/><br>
패턴: <fmt:formatNumber value="${ price }" pattern="########.###"/><br>
</body>
</html>
<!--
실행결과
통화 : 원12,345
퍼센트 : 1234500%
숫자 : 12,345
패턴: 00012345.000
패턴: 12345
-->
1.3.2. <fmt:parseNumber> 태그
- 문자열을 숫자(Number)로 변환한다.
- <fmt:parseNumber value="값" type="값타입" pattern="패턴" parseLocale="통화코드" integerOnly="boolean" var="변수명" scope="영역 />
- value : 파싱할 문자열
- type : value 속성의 문자열 타입을 지정, number, currency, percentage가 올 수 있다. 기본값은 number
- pattern : 직접 파싱할 때 사용할 양식을 지정
- parseLocale : 파싱할 때 사용할 로케일을 지정
- integerOnly : 정수 부분만 파싱할 지의 여부를 지정, 기본값은 false
- var : 파싱한 결과를 저장할 변수명을 지정
- scope : 변수를 저장할 영역을 지정, 기본값은 page
<!-- fmt_parseNumber -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:parseNumber</title>
</head>
<body>
<fmt:parseNumber value="1234.56" pattern="0000.000" var="num1"/>
${ num1 }<br>
<fmt:parseNumber value="1234.56" var="num2"/>
${ num2 }<br>
<fmt:parseNumber value="1234.56" pattern="####.###" var="num3" />
${ num3 }<br>
</body>
</html>
<!--
실행결과
1234.56
1234.56
1234.56
-->
1.3.3. <fmt:formatDate> 태그
- 날짜 정보를 담고 있는 객체를 포맷팅하여 출력한다.
- <fmt:formatDate value="날짜값" type="타입" dateStyle="날짜스타일" timeStyle="시간스타일" pattern="패턴" timeZone="타임존" var="변수명" scope="영역" />
- value : 포맷팅할 날짜 및 시간 값
- type : 날짜, 시간 또는 둘다 포맷팅 할 지의 여부를 지정, time date both 중 한가지 값을 가지며, 기본값은 date
- dateStyle : 날짜에 대해 미리 정의된 포맷팅 스타일을 지정, default short medium long full 중 한가지 값을 가지며, 기본값은 default
- timeStyle : 시간에 대해 미리 정의된 포맷팅 스타일을 지정, default short medium long full 중 한가지 값을 가지며, 기본값은 default
- dateStyle 및 timeStyle API : http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
- pattern : 직접 파싱할 때 사용할 양식을 지정, java.text.DateFormat 양식을 사용
- timeZone : 시간대를 변경하고 싶을 때 사용, <fmt:setTimeZone> 태그에서 생성한 TimeZone 객체를 사용
- var : 파싱한 결과를 저장할 변수 명을 지정
- scope : 변수를 저장할 영역을 지정, 기본 값은 page
<!-- fmt_formatDate.jsp -->
<%@page import="org.apache.naming.java.javaURLContextFactory"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:formatDate</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>" />
<h1>type = date</h1>
default : <fmt:formatDate value="${ now }" type="date" dateStyle="default"/><br>
short : <fmt:formatDate value="${ now }" type="date" dateStyle="short"/><br>
medium : <fmt:formatDate value="${ now }" type="date" dateStyle="medium"/><br>
long : <fmt:formatDate value="${ now }" type="date" dateStyle="long"/><br>
full : <fmt:formatDate value="${ now }" type="date" dateStyle="full"/>
<hr><!-- --------------------------------------------------------------------- -->
<h1>type = time</h1>
default : <fmt:formatDate value="${ now }" type="time" timeStyle="default"/><br>
short : <fmt:formatDate value="${ now }" type="time" timeStyle="short"/><br>
medium : <fmt:formatDate value="${ now }" type="time" timeStyle="medium"/><br>
long : <fmt:formatDate value="${ now }" type="time" timeStyle="long"/><br>
full : <fmt:formatDate value="${ now }" type="time" timeStyle="full"/>
<hr><!-- --------------------------------------------------------------------- -->
<h1>type = both</h1>
default : <fmt:formatDate value="${ now }" type="both" dateStyle="default" timeStyle="default"/><br>
short : <fmt:formatDate value="${ now }" type="both" dateStyle="short" timeStyle="default"/><br>
medium : <fmt:formatDate value="${ now }" type="both" dateStyle="medium" timeStyle="default"/><br>
long : <fmt:formatDate value="${ now }" type="both" dateStyle="long" timeStyle="default"/><br>
full : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="default"/>
<hr><!-- --------------------------------------------------------------------- -->
<h1>pattern</h1>
YYYY/MM/dd : <fmt:formatDate value="${ now }" type="date" pattern="YYYY/MM/dd" /><br>
HH:mm:SS : <fmt:formatDate value="${ now }" type="time" pattern="HH:mm:SS" /><br>
hh:mm:ss : <fmt:formatDate value="${ now }" type="time" pattern="hh:mm:ss" /><br>
a : <fmt:formatDate value="${ now }" type="time" pattern="a" /><br>
H : <fmt:formatDate value="${ now }" type="time" pattern="HH" /><br>
k : <fmt:formatDate value="${ now }" type="time" pattern="kk" /><br>
K : <fmt:formatDate value="${ now }" type="time" pattern="KK" /><br>
h : <fmt:formatDate value="${ now }" type="time" pattern="hh" /><br>
z : <fmt:formatDate value="${ now }" type="time" pattern="z" /><br>
Z : <fmt:formatDate value="${ now }" type="time" pattern="Z" /><br>
X : <fmt:formatDate value="${ now }" type="time" pattern="X" /><br>
</body>
</html>
<!--
실행결과
type = date
default : 2013. 9. 30
short : 13. 9. 30
medium : 2013. 9. 30
long : 2013년 9월 30일 (월)
full : 2013년 9월 30일 월요일
---------------------------------------------------------------------------
type = time
default : 오후 3:36:59
short : 오후 3:36
medium : 오후 3:36:59
long : 오후 3시 36분 59초
full : 오후 3시 36분 59초 KST
---------------------------------------------------------------------------
type = both
default : 2013. 9. 30 오후 3:36:59
short : 13. 9. 30 오후 3:36:59
medium : 2013. 9. 30 오후 3:36:59
long : 2013년 9월 30일 (월) 오후 3:36:59
full : 2013년 9월 30일 월요일 오후 3:36:59
---------------------------------------------------------------------------
pattern
YYYY/MM/dd : 2013/09/30
HH:mm:SS : 15:36:66
hh:mm:ss : 03:36:59
a : 오후
H : 15
k : 15
K : 03
h : 03
z : KST
Z : +0900
X : +09
-->
1.3.3. <fmt:parseDate> 태그
- 문자열로 표시된 날짜 및 시간 값을 java.util.Date로 파싱한다.
- <fmt:formatDate value="날짜값" type="타입" dateStyle="날짜스타일" timeStyle="시간스타일" pattern="패턴" timeZone="타임존" parseLocale="로케일" var="변수명" scope="영역" />
- value : 파싱할 문자열
- type : 날짜, 시간 또는 둘다 포맷팅할지의 여부를 지정, time date both 중 한가지 값을 가지며, 기본값은 date
- dateStyle : 날짜에 대해 미리 정의된 포맷팅 스타일을 지정, default short medium long full 중 한가지 값을 가지며, 기본값은 default
- timeStyle : 시간에 대해 미리 정의된 포맷팅 스타일을 지정, default short medium long full 중 한가지 값을 가지며, 기본값은 default
- pattern : 직접 파싱할 때 사용할 양식을 지정, java.text.DateFormat 양식을 사용
- timeZone : 시간대를 변경하고 싶을 때 사용, <fmt:setTimeZone> 태그에서 생성한 TimeZone 객체를 사용
- parseLocale : 파싱할 때 사용할 로케일을 지정
- var : 파싱한 결과를 저장할 변수명을 지정
- scope : 변수를 저장할 영역을 지정, 기본값은 page
<fmt:parseDate value="1989-09-18 03:00:23" pattern="yyyy-MM-dd HH:mm:ss" var="date" />
${ date }
1.3.4. <fmt:timeZone> 태그
- 시간대별로 시간을 처리할 수 있다.
- <fmt:timeZone value="타임존명"> <fmt:formatDate . . . /> </fmt:timeZone>
<!-- fmt_timeZone.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:timeZone</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>"/>
대한민국 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<br>
<fmt:timeZone value="Asia/Hong_kong">
홍콩 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
</fmt:timeZone>
<br>
<fmt:timeZone value="Europe/London">
런던 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
</fmt:timeZone>
<br>
<fmt:timeZone value="America/New_York">
뉴욕 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
</fmt:timeZone>
</body>
</html>
<!--
실행결과
대한민국 : 2013년 9월 30일 월요일 오후 4시 37분 04초 KST
홍콩 : 2013년 9월 30일 월요일 오후 3시 37분 04초 GMT+08:00
런던 : 2013년 9월 30일 월요일 오전 8시 37분 04초 BST
뉴욕 : 2013년 9월 30일 월요일 오전 3시 37분 04초 EDT
-->
1.3.5. <fmt:setTimeZone> 태그
- 시작태그와 끝태그 사이에만 영향을 미치는 것이 아니고, 액션 태그가 실행된 다음의 모든 코드에 영향을 미친다.
- <fmt:setTimeZone value="타임존명"> <fmt:formatDate . . . /> </fmt:timeZone>
<!-- fmt_setTimeZone.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:setTimeZone</title>
</head>
<body>
<c:set var="now" value="<%= new java.util.Date() %>"/>
대한민국 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<br>
<fmt:setTimeZone value="Asia/Hong_kong" />
홍콩 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<br>
<fmt:setTimeZone value="Europe/London" />
런던 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
<br>
<fmt:setTimeZone value="America/New_York" />
뉴욕 : <fmt:formatDate value="${ now }" type="both" dateStyle="full" timeStyle="full"/>
</body>
</html>
<!--
실행결과
대한민국 : 2013년 9월 30일 월요일 오후 4시 39분 22초 KST
홍콩 : 2013년 9월 30일 월요일 오후 3시 39분 22초 GMT+08:00
런던 : 2013년 9월 30일 월요일 오전 8시 39분 22초 BST
뉴욕 : 2013년 9월 30일 월요일 오전 3시 39분 22초 EDT
-->
* TimeZone 리스트
<!-- timeZoneList.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TimeZone List</title>
</head>
<body>
<c:forEach var="id" items="<%= java.util.TimeZone.getAvailableIDs() %>">
${ id }<bR>
</c:forEach>
</body>
</html>
<!--
실행결과
Etc/GMT+12
Etc/GMT+11
Pacific/Midway
Pacific/Niue
Pacific/Pago_Pago
Pacific/Samoa
US/Samoa
. . . 생략
Etc/GMT-13
MIT
Pacific/Apia
Pacific/Enderbury
Pacific/Fakaofo
Pacific/Tongatapu
Etc/GMT-14
Pacific/Kiritimati
-->
1.4. web.xml 파일에 국제화 관련 태그 기본 값 설정
- 기본으로 사용할 로케일 정보나 시간대를 web.xml 파일에 컨텍스트 초기화 파라미터를 이용해서 설정할 수 있다.
속성 이름 | 설명 |
javax.servlet.jsp.jstl.fmt.localizationContext | 기본으로 사용할 리소스 번들을 지정, 리소스 번들의 basename을 입력한다. |
javax.servlet.jsp.jstl.fmt.locale | 기본으로 사용할 로케일을 지정한다. |
javax.servlet.jsp.jstl.fmt.timeZone | 기본으로 사용할 시간대를 지정한다. |
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resource.message</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
<param-value>ko_kr</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.timeZone</param-name>
<param-value>Asia/Seoul</param-value>
</context-param>