Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSTL fmt:message 태그 활용법: 키를 지역화된 메시지에 매핑하고 JSP에서 매개변수 교체하기

JSTL fmt:message 태그란?

<fmt:message> 태그는 지정한 키(key)에 해당하는 지역화된 메시지를 찾아 매핑하고, 필요에 따라 매개변수 교체(parametric replacement)까지 수행하는 JSTL 태그입니다. 다국어 웹 애플리케이션을 개발할 때 리소스 번들(Resource Bundle)에 저장된 메시지를 손쉽게 화면에 출력할 수 있도록 도와줍니다.

주요 속성

<fmt:message> 태그에서 사용할 수 있는 주요 속성은 다음과 같습니다.

속성설명필수 여부기본값
key가져올 메시지의 키아니오태그 본문(Body)
bundle사용할 리소스 번들아니오기본 번들
var지역화된 메시지를 저장할 변수의 이름아니오페이지에 바로 출력
scope지역화된 메시지를 저장할 변수의 유효 범위아니오Page

속성 설명

key 속성은 리소스 번들에서 실제 메시지를 찾기 위한 식별자 역할을 합니다. 만약 key 속성을 생략하면 태그 본문에 작성된 내용이 키로 사용됩니다. bundle 속성은 <fmt:setBundle> 태그로 생성한 번들을 지정할 때 사용하며, 생략 시 기본 번들이 적용됩니다. varscope 속성을 함께 사용하면 메시지를 즉시 출력하지 않고 변수에 저장해 두었다가 나중에 활용할 수 있습니다.

사용 예제

다음은 fmt:message 태그를 사용하여 리소스 번들에서 메시지를 가져와 출력하는 예제입니다.

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
   <head>
      <title>JSTL fmt:message Tag</title>
   </head>
   <body>
      <fmt:setLocale value = "en"/>
      <fmt:setBundle basename = "com.tutorialspoint.Example" var = "lang"/>
      <fmt:message key = "count.one" bundle = "${lang}"/><br/>
      <fmt:message key = "count.two" bundle = "${lang}"/><br/>
      <fmt:message key = "count.three" bundle = "${lang}"/><br/>
    </body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

One
Two
Three

정리

fmt:message 태그는 먼저 <fmt:setLocale>로 로케일을 설정하고, <fmt:setBundle>로 사용할 리소스 번들을 지정한 뒤, 각 키에 해당하는 메시지를 가져오는 방식으로 동작합니다. 이처럼 fmt:message 태그를 활용하면 언어별 메시지 관리가 체계적으로 이루어져 국제화(i18n) 작업을 훨씬 효율적으로 처리할 수 있습니다.