2009-05-12 5 views
1

다음 코드는 쿼리 문자열에서 lang param의 Locale을 설정합니다.세션에서 어떻게 로케일 정보를 읽습니까?

<c:if test="${param['lang'] != null}"> 
    <fmt:setLocale value="${param['lang']}" scope="session"/> 
</c:if> 

어떻게이 변수를 읽을 수 있습니까?

나는 그것의 조금 noobish를 알고있다.

fmt:setLocale을 사용하여 세션 범위에 로컬이 설정되지 않은 경우 하나의 언어 링크를 표시하고 특정 로캘로 설정된 경우 다른 언어 링크를 표시하려면 약간의 조건부 로직이 필요합니다.

답변

4

이 시도

감사 :

<c:if test="${pageContext.request.locale.language == 'en'}"> 
    <a href="link1">Link 1</a> 
</c:if> 
<c:if test="${pageContext.request.locale.language != 'en'}"> 
    <a href="link2">Link 2</a> 
</c:if> 
+0

내 경우에는 감사하지만 작동하지 않습니다. 어떤 일을하는지에 대한 다음 정보가 나와 있습니다. – raq

0
<c:choose> 
    <c:when test="${pageContext.response.locale eq 'en_CY'}"> 
     <a href="?lang=en_GB">English</a> 
    </c:when> 
    <c:otherwise> 
     <a href="?lang=en_CY">Cymraeg</a> 
    </c:otherwise> 
</c:choose> 

이것은 단지 페이지 itslef에서 작동합니다.

이지만 pageContext에서 읽기 때문에 sessionScope (여기서이 값은 fmt:setLocale으로 설정 됨)에서 읽음으로써 다른 페이지에서 작동하지 않습니다.

어떻게 sessionScope에서 읽습니까?

2
<c:choose> 
    <c:when test="${sessionScope['javax.servlet.jsp.jstl.fmt.locale.session'] eq 'en_CY'}"> 
     a href="?lang=en_GB">English</a> 
    </c:when> 
    <c:otherwise> 
     <a href="?lang=en_CY">Cymraeg</a> 
    </c:otherwise> 
</c:choose> 

이 방법이 효과적이지만 쓸만한 방법이 있습니까?

<c:when test="${sessionScope['javax.servlet.jsp.jstl.fmt.locale.session'] eq 'en_CY'}"> 
관련 문제