Java 기반의 웹 애플리케이션에서 다국어 지원을 구현해야 할 때, JSP에서는 JSTL의 태그를 많이 사용합니다.
JSTL(JavaServer Pages Standard Tag Library)의 태그는 국제화(i18n) 및 지역화(l10n) 처리를 위한 태그 라이브러리입니다.
날짜, 숫자, 메시지를 사용자 로케일에 맞게 포맷하거나 번역할 수 있도록 도와줍니다.
JSP에서 태그를 사용하기 위해서는 JSTL 라이브러리가 필요하며, 다음과 같은 선언을 통해 사용할 수 있습니다.
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
현재 페이지에 사용할 로케일을 설정합니다.
<fmt:setLocale value="en_US" />
다국어 텍스트를 출력할 때 사용합니다. 리소스 번들(properties 파일)과 함께 동작합니다.
<fmt:setBundle basename="messages" />
<fmt:message key="greeting" />
resources/messages.properties
greeting=안녕하세요!
resources/messages_en.properties
greeting=Hello!
로케일에 따라 자동으로 적절한 텍스트를 불러옵니다.
숫자를 로케일에 맞게 포맷합니다.
<fmt:formatNumber value="1234567.89" type="currency" />
날짜와 시간을 로케일에 맞춰 포맷합니다.
<fmt:formatDate value="${now}" type="date" dateStyle="long" />
문자열을 날짜나 숫자 객체로 변환합니다.
<fmt:parseDate value="2025-04-14" pattern="yyyy-MM-dd" var="parsedDate" />
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setLocale value="en_US" />
<fmt:setBundle basename="messages" />
<h3><fmt:message key="greeting" /></h3>
<p>가격: <fmt:formatNumber value="10000" type="currency" /></p>
<p>오늘 날짜: <fmt:formatDate value="${now}" type="both" /></p>
| 태그 | 설명 |
|---|---|
| <fmt:setLocale> | 현재 페이지의 언어 설정 |
| <fmt:setBundle> | 메시지 파일 설정 |
| <fmt:message> | 다국어 메시지 출력 |
| <fmt:formatNumber> | 숫자 포맷팅 (통화, 백분율 등) |
| <fmt:formatDate> | 날짜 포맷팅 |
| <fmt:parseDate> | 문자열 → 날짜 변환 |
| <fmt:parseNumber> | 문자열 → 숫자 변환 |