본문 바로가기

BackEnd/JSP

[JSP 웹 프로그래밍] 다국어 처리 2 (JSTL fmt 태그)

728x90
반응형

1. JSTL fmt 태그

   ▷ 다국어 문서 처리를 위한 국제화 및 지역화 태그

   ▷ 날짜와 숫자 등을 형식화하는 기능을 제공하는 JSTL 라이브러리인 JSTL fmt 태그는 특정 지역에 따라 다른 메시지를 출력할 때 사용

      ▶ 한글 웹 브라우저는 한글 메시지를 출력할 때, 영문 웹 브라우저는 영어 메시지를 출력할 때 유용

 

◎ JSTL fmt 태그 라이브러리 사용 방법


▷ JSTL 라이브러리인 jstl.jar 파일이 필요
   ▶ 배포 사이트 : https://mvnrepository.com/ 
   ▶ 다운로드 파일 : jstl-1.2.jar 

 

◎ JSTL fmt 태그의 종류

 

◎ 로케일 설정 태그의 기능과 사용법

   ▷ setLocale 태그

      ▶ 국제화 태그가 사용할 로케일을 설정하는 태그

   ▷ requestEncoding 태그 : 요청 파라미터의 문자 인코딩을 설정하는 태그

 

 

 

◎ 메시지 처리 태그의 기능과 사용법

   ▷ 리소스번들

      ▶ 메시지 처리 태그에서 사용하는 파일로 메시지 번들이라고도 함

      ▶ 리소스번들로 사용한느 파일은 보통 WEB-INF/classes/ 폴더에 있음

      ▶ 리소스번들을 java.util.Properties 클래스에 정의된 방법으로 메시지를 읽어오기 때문에 확장자가 properties인 파일이 반드시 있어야 함

         → java.util.Properties 클래스는 알파벳이나 숫자, 라틴 문자 외의 언어를 유니코드 값으로 표현

 

     ▷ 리소스번들로 사용하는 *.properties 파일의 종류

 

◎ 메시지 처리 태그의 기능과 사용법

   ▷ bundle 태그

      ▶ 사용할 리소스번들을 설정하는 태그로 형식

   ▷ message 태그

      ▶ bundle 태그에 설정한 리소드번들에서 메시지를 읽어와 출력하는 태그

 

   ▷ setBundle 태그

      ▶ 리소스번들을 가져와 변수로 저장한 후 JSP 페이지 어디에서나 사용할 수 있는 태그

      ▶ bundle 태그를 대체하여 사용할 수 있음

 

◎ 사용자 로케일에 따라 리소스번들의 메시지 출력하는 예제

   ▷ JSTL fmt 태그를 사용하기 위해 jstl-1.2.jar 파일을 다운로드하여 /WebContent/WEB INF/lib/ 폴더에 추가

   ▷ /src/ 폴더에 다음과 같이 2개의 리소스번들을 작성

 

1. myBundle.properties
title=\uC790\uBC14 \uC11C\uBC84 \uD398\uC774\uC9C0
username=\uAD00\uB9AC\uC790
password=1234​


2. myBundle_en.properties
title= Java Server Pages
username=admin
password=1234​


위의 두 개 properties는 아래와 같이 Java Resources에 경로를 지정해줍니다.



3. jstl_fmt01.jsp
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>Internationalization</title>
</head>
<body>
		<fmt:setLocale value="ko"/>
	<p>----------- 기본 로케일 ----------------
		<fmt:setBundle basename="ch09.com.bundle.myBundle" var="resourceBundle" />
	<p> 제목 : <fmt:message key="title" bundle="${resourceBundle}" />
	<p> <fmt:message key="username" var="userMsg" bundle="${resourceBundle}" />
		이름 : ${userMsg}
	<p>----------- 영문 로케일 ----------------
		<fmt:setLocale value="en" />
		<fmt:setBundle basename="ch09.com.bundle.myBundle" var="resourceBundle" />
	<p> 제목 : <fmt:message key="title" bundle="${resourceBundle}" />
	<p> 이름 : <fmt:message key="username" bundle="${resourceBundle}" />
</body>
</html>

 


처음에 value 값을 한국으로 설정해주지 않으면 둘 다 영어 로케일로 나타납니다.

 

JSTL fmt 태그는 전세계의 특정 지역에 따라 다른 메시지를 출력할 때 사용합니다!

 

해당 태그를 사용할 때 별도의 라이브러리 파일이 필요하다는 것 확인해야 오류가 나타나지 않네요!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형