JSP/Servlet – JSTL <fmt:setBundle>과 <fmt:bundle> <fmt:message>커스텀 액션 사용하기
한글 웹페이지와 영어 웹페이지를 단 하나의 JSP파일로 만들때는 <fmt:setBundle>과 <fmt:bundle> 커스텀 액션을 사용합니다.
이를 사용하기 위해서는 프로퍼티 파일을 만들어야 되는데 데이터를 키=값으로 모아놓은 텍스트 파일을 말합니다.
이 프로퍼티 파일은 ASCII코드로 만들어야 하므로 이클립스에 플러그인을 설치해야합니다. ([이클립스] properties editor 플러그인 설치 간단 가이드 참고)
< fmt:setBundle> 액션은 사용할 프로퍼티 파일을 지정하는 역할을 합니다. 이 액션에 basename이라는 애트리뷰트를 쓰고 애트리뷰트
값으로 사용할 프로퍼티 파일의 이름을 지정하면 됩니다.
파일의 이름은 반드시 _언어코드.properties확장자를 제외한 나머지 부분만 작성합니다.
<fmt:setBundle basename="파일명"/>
<fmt:message>커스텀 액션은 그 프로퍼티의 파일을 가져올 수 있습니다.
<fmt:message key="프로퍼티 파일의 데이터의 키"/>
예제는 프로퍼티 파일 2개와 JSP 파일 한 개로 구성됩니다. 프로퍼티 파일은 반드시 WEB-INF/classes 폴더 안에 넣어야 합니다.
MyIntro.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle basename="Intro"/> <!-- 프로퍼티 파일의 대표명 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<fmt:message key="TITLE"/><BR>
<fmt:message key="GREETING"/><BR>
<fmt:message key="TEXT"/><BR>
</body>
</html>
Intro_en.properties
TITLE=gakari
GREETING=hello
TEXT=nice to meet you
Intro_ko.properties
TITLE=가카리
GREETING=안녕하세요
TEXT=반갑습니다.
실행 화면
인터넷 브라우저의 언어가 한글이면 다음과 같이 나옵니다.
인터넷 브라우저의 언어가 영어면 다음과 같이 나옵니다.
위의 예제에서 MyIntro와 동일하게 동작하는 JSP파일을 작성해봅시다.
MyIntro2.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle basename="Intro"/>
<fmt:message var="title" key="TITLE"/>
<fmt:message var="greeting" key="GREETING"/>
<fmt:message var="text" key="TEXT"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
${title } <BR><!-- 위에서 만든 EL를 사용합니다. -->
${greeting } <BR>
${text } <BR>
</body>
</html>
실행 화면
역시 동일한 화면이 나오네요.
마지막으로 <fmt:bundle> 커스텀 액션입니다.
이 액션은 <fmt:bundle>의 시작 태그와 끝 태그 사이에 있는 코드에만 영향을 미치는 점이 다릅니다.
MyIntro3.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:bundle basename="Intro">
<fmt:message var="title" key="TITLE"/>
<fmt:message var="greeting" key="GREETING"/>
<fmt:message var="text" key="TEXT"/>
</fmt:bundle>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
${title } <BR><!-- 위에서 만든 EL를 사용합니다. -->
${greeting } <BR>
${text } <BR>
</body>
</html>
실행 화면
'프로그래밍 > JSP Servlet' 카테고리의 다른 글
JSP/Servlet – 애트리뷰트를 지원하는 태그 파일 만들기 (0) | 2016.02.18 |
---|---|
JSP/Servlet – 태그 파일을 이용해서 커스텀 액션 만드는 방법 (0) | 2016.02.14 |
JSP/Servlet – JSTL <fmt:requestEncoding> 커스텀 액션 사용하기 (0) | 2016.02.10 |
JSP/Servlet – JSTL 프로퍼티 파일에 변수 포함하기 (0) | 2016.02.10 |
JSP/Servlet – JSTL <fmt:setLocale> 커스텀 액션 사용하기 (0) | 2016.02.01 |
JSP/Servlet – JSTL <fmt:formatNumber> 커스텀 액션 사용하기 (0) | 2016.02.01 |
JSTL/Servlet – JSTL <fmt:formatDate> 커스텀 액션 사용하기 (0) | 2016.01.31 |
JSP/Servlet – JSTL <c:out> 커스텀 액션 사용하기 (0) | 2016.01.31 |