2009-05-12 2 views
1

Следующий бит кода устанавливает Locale из lang param в querystring.Как вы читаете локальную информацию из сеанса?

<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

спасибо - но не работает в моем случае. немного больше информации о том, что делает im, при следующем ответе. – 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.

, но поскольку его чтение со страницыКонтекст, он не будет работать на других страницах, читая его с sessionScope (где он устанавливается fmt:setLocale).

Как бы я прочитал его из сеансаScope?

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'}">