以下代码在查询字符串上设置来自 lang 参数的区域设置。
<c:if test="${param['lang'] != null}">
<fmt:setLocale value="${param['lang']}" scope="session"/>
</c:if>
我现在如何读取该变量?
我知道它有点菜。
如果本地尚未使用 设置在会话范围内fmt:setLocale
,我需要一些条件逻辑来显示一种语言链接,如果已将其设置为特定语言环境,则需要另一种语言链接。
谢谢
以下代码在查询字符串上设置来自 lang 参数的区域设置。
<c:if test="${param['lang'] != null}">
<fmt:setLocale value="${param['lang']}" scope="session"/>
</c:if>
我现在如何读取该变量?
我知道它有点菜。
如果本地尚未使用 设置在会话范围内fmt:setLocale
,我需要一些条件逻辑来显示一种语言链接,如果已将其设置为特定语言环境,则需要另一种语言链接。
谢谢
尝试这个:
<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>
<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'}">
<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 中读取它?