2009-05-12 7 views
1

Le bit de code suivant définit le Locale à partir de lang param sur la chaîne de requête.Comment lisez-vous les informations locales de la session?

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

Comment lire maintenant cette variable?

Je sais que c'est un peu noobish.

J'ai besoin d'un peu de logique conditionnelle pour afficher un lien de langue si le local n'a pas été défini dans la portée de session en utilisant le fmt:setLocale, et un autre s'il a été défini sur un environnement local spécifique.

Merci

Répondre

4

Essayez ceci:

<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

merci - mais ne fonctionne pas dans mon cas. un peu plus d'informations sur ce que je fais est sur la prochaine réponse. – 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> 

cela ne fonctionne que sur la page mmêe.

mais parce que sa lecture de la pageContext, il ne fonctionnera pas sur d'autres pages en le lisant de la sessionScope (où il est défini par le fmt:setLocale).

Comment le lire depuis 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> 

Cela fonctionne mais existe-t-il un meilleur moyen d'écrire?

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