1

以下代码在查询字符串上设置来自 lang 参数的区域设置。

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

我现在如何读取该变量?

我知道它有点菜。

如果本地尚未使用 设置在会话范围内fmt:setLocale,我需要一些条件逻辑来显示一种语言链接,如果已将其设置为特定语言环境,则需要另一种语言链接。

谢谢

4

3 回答 3

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> 
于 2009-05-12T12:02:37.297 回答
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'}">
于 2009-05-12T13:15:59.013 回答
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 中读取它?

于 2009-05-12T12:52:17.183 回答