JSTL - fmt태그
fmt태그는 JSP페이지에서 리소스를 사용할 때 리소스를 다루는 태그입니다.
<fmt:> : 로케일을 사용하여 리소스 번들로부터 해당 언어 및 국가 코드의 리소스를 가져와서 JSP페이지에서 사용하거나 리소스의 출력 양식을 결정할 때 사용합니다.
기능 | 태그 | 설명 |
로케일 지정 | setLocale | Locale을 지정합니다. |
requestEncoding | 요청 파라미터의 characterEncoding을 지정합니다. | |
메시지 처리 | bundle | 사용할 번들을 지정합니다. |
message | 번들에서 locale에 맞는 메시지를 출력합니다. | |
setBundle | 특정 변수에 리소스 번들을 지정합니다. |
기능 | 태그 | 설명 |
숫자 및 날짜 포맷팅 | formatNumber | 숫자를 포맷팅합니다. |
parseNumber | 문자열을 숫자로 변환합니다. | |
formatDate | Date객체를 포맷팅합니다. | |
parseDate | 문자열을 Date객체로 변환합니다. | |
timeZone | 시간대를 지정합니다. |
<fmt:setLocale> : 로케일을 변경할 때 사용합니다.
<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>
<fmt:setLocale value=“ko” scope=“request” />
value : 로케일을 ‘언어코드_국가코드’ 형식으로 지정합니다.
언어 코드는 반드시 지 정해야 하며 국가 코드는 추가로 지정할 수 있습니다.
value 값이 null이면 기본 로케일을 사용합니다.
기본 로케일은 JVM의 기본 로케일 혹은 web.xml에서 설정한 기본 로케일을 사용합니다.
scope : 지정한 로케일이 영향을 미치는 영역을 지정합니다. 기본 값은 page입니다.
<fmt:requestEncoding> : 요청 파라미터의 캐릭터 인코딩 코드를 지정합니다.
<fmt:requestEncoding value=“utf-8” />
다국어 리소스 처리 방법
리소스 번들을 구성해야합니다. 리소스 번들이란 동일 리소스로 취급받는 서로 다른 언어로 구현되는 리소스 파일들의 집한인데 이 집합은 폴더로 구현해야합니다.
번들파일을 .properties파일로 구현합니다. properties파일은 key값과 value값이 모두 String인 Map으로 구성되는 파일입니다.
번들에 소속되는 리소스 파일들은 기본 번들 파일을 반드시 포함해야하고 언어코드_국가코드가 들어간 나머지 번들파일들로 구성됩니다.
리소스 번들이 준비되면 <fmt:bundle>과 <fmt:message>태그를 사용하여 다국어 리소스 처리를 합니다.
<fmt:bundle> : 사용하려는 리소스 번들을 지정합니다. 이때 번들을 구성하는 파일중 로케일에 해당하는 파일이 선택됩니다.
<fmt:message> : 로케일에 해당하는 파일에서 key속성을 이용해 필요한 리소스를 JSP페이지로 가져오는 역할을 합니다.
<fmt:bundle basename="resource.message">
<fmt:message key="greeting" />
</fmt:bundle>
<fmt:setBundle> : 지정된 번들을 변수에 저장합니다.
<fmt:setBundle var="message" basename="resource.message" />
<fmt:formatNumber> : 숫자 포맷팅을 지정합니다.
<fmt:formatNumber value="${price}" type="number" var="numberType" />
value : 숫자값 지정
type : 어떤타입인지 지정
var : 변환한 값을 저장할 변수 지정