以下代码在querystring上设置lang param的Locale。
<c:if test="${param['lang'] != null}">
<fmt:setLocale value="${param['lang']}" scope="session"/>
</c:if>
我现在如何阅读该变量?
我知道它有点无趣。
如果未使用fmt:setLocale
在会话范围中设置本地,则需要一些条件逻辑来显示一个语言链接,如果已将其设置为特定语言环境,则需要另一个语法链接。
由于
答案 0 :(得分: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>
答案 1 :(得分: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'}">
答案 2 :(得分: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>
这只适用于页面上的这个。
但是因为它是从pageContext读取的,所以通过从sessionScope(由fmt:setLocale
设置)读取它不会在其他页面上工作。
我如何从sessionScope中读取它?