학습(구)/JSP

JSTL - fmt태그

잉아당 2020. 9. 17. 00:49
728x90

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 : 변환한 값을 저장할 변수 지정