일반 Struts의 message-resources 를 사용한 예제

황제낙엽 2005.12.16 16:22 조회 수 : 20 추천:78

sitelink1  
sitelink2  
extra_vars5  
extra_vars6  
화면에서 다른 형태로 표시하고 싶은데 국제화 지원이 되었으면 한다는게 질문의 요지인 듯 싶네요.

일단, 국제화 관련한 부분은 자세히 아시고자 한다면 별도로 참고하셔야겠지만, 어느 정도 알고 계신다는 전제로 설명드리겠습니다.

아래의 조각 코드는 jsp 2.0 스펙의 EL과 JSTL를 주로 사용한 것입니다.



classes 아래 Resources 라는 폴더에 국제화 지원 메세지 리소스가 들어 있고, 영어는 message.properties, 한국어는 message_ko.properties라는 이름으로 각각 정의하고 있다고 하면 다음과 같은 형태로 메세지가 들어갈 것입니다.



message.properties

grade1=Bad

grade2=slightly bad

grade3=normal

grade4=a bit great

grade5=great



message_ko.properties

grade1=안좋아

grade2=별로

grade3=보통

grade4=우수

grade5=대단해



그리고, struts-config.xml에 아래의 태그처럼 메세지 리소스를 추가해주시면 됩니다.



struts-config.xml

... 전략 ...

<message-resources parameter="Resources/message"/>

... 후략 ...



이것을 jsp에서 사용하기 위한 로직만 남았는데, form 에 가져오는 프라퍼티명이 grade 라고 했을 때, 해당 grade의 값이 1, 2, 3, 4, 5인 것을 확인하여 메세지 리소스를 호출하도록 해주면 됩니다.



test.jsp

... 전략 ...

<c:choose>

    <c:when test="${form.grade='1'}">

        <bean:message key="grade1"/>

    </c:when>

    <c:when test="${form.grade='2'}">

        <bean:message key="grade2"/>

    </c:when>

    <c:when test="${form.grade='3'}">

        <bean:message key="grade3"/>

    </c:when>

    <c:when test="${form.grade='4'}">

        <bean:message key="grade4"/>

    </c:when>

    <c:otherwise>

        <bean:message key="grade5"/>

    </c:otherwise>

</c:choose>

... 후략 ...



위와 같이 하면 해당 브라우저의 언어 설정에 따라 영어 혹은 한국어 메세지를 뿌려주게 됩니다.