1

次のコードは、クエリ文字列の lang パラメータから Locale を設定します。

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

その変数をどのように読み取ることができますか?

私はそれが少し初心者であることを知っています。

fmt:setLocaleローカルが を使用してセッション スコープに設定されていない場合は 1 つの言語リンクを表示し、特定のロケールに設定されている場合は別の言語リンクを表示するには、少し条件付きロジックが必要です。

ありがとう

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>

これはページ自体でのみ機能します。

ただし、pageContext から読み取るため、sessionScope (によって設定されている場所fmt:setLocale) から読み取っても、他のページでは機能しません。

sessionScope からどのように読み取るのですか?

于 2009-05-12T12:52:17.183 に答える