일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자동차수리시스템
- EnhancedFor
- 오라클
- 한국건설관리시스템
- cursor문
- NestedFor
- 컬렉션 타입
- 생성자오버로드
- 예외처리
- 예외미루기
- 컬렉션프레임워크
- abstract
- 참조형변수
- 다형성
- oracle
- 인터페이스
- 어윈 사용법
- 사용자예외클래스생성
- 대덕인재개발원
- exception
- 정수형타입
- 메소드오버로딩
- 집합_SET
- GRANT VIEW
- 제네릭
- 추상메서드
- Java
- 자바
- 객체 비교
- 환경설정
- Today
- Total
거니의 velog
(17) 표현 언어와 JSTL 8 본문
8. 다국어 태그 라이브러리 사용하기
* 여러 온라인 쇼핑몰을 이용하다 보면 간혹 영어나 일본어로 언어를 변환해서 표시해 주는 화면을 보았을 것이다. 특정 쇼핑몰에서 해당 언어에 해당하는 국기를 클릭하면 종종 쇼핑몰 사이트가 해당 국가의 언어로 표시되는 것을 볼 수 있다.
* 이러한 기능은 어떻게 구현하는 것일까?
* JSP에서 다국어 태그 라이브러리를 사용하면 다국어 기능을 쉽게 구현할 수 있다. 다음 표는 JSP에서 다국어 기능을 구현하는 태그들이다.
<다국어 태그 라이브러리 종류>
분류 | 태그 | 설명 |
다국어 | <fmt:setLocale> | Locale(언어)을 지정한다. |
<fmt:message> | 지정한 언어에 해당하는 언어를 표시한다. | |
<fmt:setBundle> | 사용할 번들을 지정한다. | |
<fmt:setParam> | 전달할 매개변수를 지정한다. | |
<fmt:requestEncoding> | 요청 매개변수의 문자 인코딩을 지정한다. |
* 실제로 다국어 태그 라이브러리를 어떻게 사용하는지 살펴보자.
9. 한글을 아스키 코드로 변환하기
* 다국어 기능을 사용하려면 미리 한글을 아스키 코드로 변환한 형태로 저장하고 있다가 요청 시 이 아스키 코드를 다시 한글로 변환해서 표시한다. 따라서 표시할 한글을 아스키 코드로 변환하는 방법부터 알아보자.
(1) Properties Editor 설치하기
* 그럼 먼저 이클립스에 한글을 아스키 코드로 변환하는 기능을 제공하는 Properties Editor 플러그인을 설치한다.
1. 이클립스 상단 메뉴에서 Help > Install New Software를 선택한다.
2. Add... 를 클릭한다.
3. Name은 Properties Editor 로, Location은 http://propedit.sourceforge.jp/eclipse/updates 로 입력하고 Add를 클릭한다.
4. PropertiesEditor 항목을 선택한 후 Next를 클릭한다.
5. Install Details 화면이 나타나면 Next를 클릭한다.
6. 라이선스 정책에 동의한 후 Finish를 클릭한다.
7. 설치 후 이클립스를 재실행할지 묻는 창이 나타나면 Restart Now를 클릭한다.
(2) 한글 아스키 파일 만들기
* 그럼 이제 한글 아스키 코드를 저장하는 properties 파일을 만들어 보자. properties 파일을 만드는 과정은 다음과 같다.
1. 프로젝트의 src 폴더에 resource 패키지를 생성하고 마우스 오른쪽 버튼을 클릭한 후 New > Other...를 선택한다.
2. General 항목의 File을 선택한 후 Next를 클릭한다.
3. 파일 이름으로 member.properties 를 입력한 후 Finish를 클릭한다.
4. resource 패키지에 member.properties가 생성된 것을 확인할 수 있다.
5. 같은 방법으로 member_ko.properties 와 member_en.properties 파일을 생성한다.
6. member.properties 파일을 열어 키/값 쌍으로 회원 정보를 한글로 작성한 후 저장한다.
mem.name = 홍길동
mem.address = 서울시 강남수
mem.job = 회계사
7. 작성한 회원 정보 전체를 마우스로 드래그한 후 오른쪽 버튼을 클릭해 Unicode 표시를 선택한다.
8. 창에 표시된 아스키 코드 전체를 마우스로 드래그한 후 Ctrl + C를 눌러 복사한다.
9. member_ko.properties 파일을 열어 붙여 넣은 후 저장한다.
10. member_en.properties 파일을 열어 동일한 key에 대한 회원 정보를 영어로 따로 입력한다.
mem.name = hong kill-dong
mem.address = kang-name gu, seoul
mem.job = account
(3) JSP 페이지에 다국어 표시하기
* 자, 그럼 앞에서 만든 아스키 코드를 이용해 한글과 영어를 표시해 보자.
1. 먼저 프로젝트의 WebContent 폴더에 test05 폴더를 만든 후 message1.jsp 파일을 저장한다.
2. message1.jsp 파일을 다음과 같이 작성한다. <fmt:setLocale> 태그를 이용해 표시할 locale(언어)을 지정한 후 <fmt:bundle> 태그를 이용해 resource 패키지의 프로퍼티 파일을 읽어온다. 그리고 <fmt:message> 태그를 이용해 프로퍼티 파일의 키(key)에 대한 값을 각각 출력한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
isELIgnored="false" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("UTF-8");
// locale을 영어로 지정한다.
// locale을 한글로 지정한다.
// resource 패키지 아래 member 프로퍼티 파일을 읽어온다.
// <fmt:message> 태그의 key 속성에 프로퍼티 파일의 key를 지정하여 값(value)을 출력한다.
%>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JSTL 다국어 기능</title>
</head>
<body>
<fmt:setLocale value="en_US" />
<%-- <fmt:setLocale value="ko_KR" /> --%>
<h1>
회원정보<br><br>
<fmt:bundle basename="resource.member">
이름:
<fmt:message key="mem.name" /><br>
주소:
<fmt:message key="mem.address" /><br>
직업:
<fmt:message key="mem.job" />
</fmt:bundle>
</h1>
</body>
</html>
3. 다음의 주소로 요청한다. 최초 요청 시 한글로 회원 정보를 출력한다. 최초 요청 시 한글로 회원 정보를 출력한다.
- http://localhost:8090/pro14/test05/message1.jsp
4. message1.jsp에서 한글 locale을 주석 처리하고 영어 locale을 활성화한다.
5. 브라우저에서 다시 요청하면 다음과 같이 영어로 회원 정보를 출력한다.
* 그런데 브라우저에 출력되는 '이름', '주소', '직업'과 JSP 제목(title)은 여전히 한글로 표시되는데, 이 부분은 직접 다국어 기능을 이용해 구현해 보길 바란다.
'Java > Java_JSP' 카테고리의 다른 글
(19) JSP 페이지를 풍부하게 하는 오픈 소스 기능 (0) | 2023.09.20 |
---|---|
(18) 표현 언어와 JSTL 9 (0) | 2023.09.20 |
(16) 표현 언어와 JSTL 7 (0) | 2023.09.18 |
(15) 표현 언어와 JSTL 6 (0) | 2023.09.15 |
(14) 표현 언어와 JSTL 5 (0) | 2023.09.15 |