1

JSP A から選択フィールド オプション値のリクエスト パラメータを取得し、それをリクエスト スコープに格納するサーブレット S があります。

String test = request.getParameter("option");
    request.setAttribute("select",test);

このサーブレット S は、処理後に再び同じ JSP A にリダイレクトされます。JSP AI には同じオプション フィールドがあり、次のようなコードもあります。

 <select name="option">
     <c:choose>
      <c:when test="${select} == All">
      <option id="id" class="cl" value="All" selected>Items</option>                        
    </c:when>
    <c:otherwise>
     <option id="id" class="cl" value="All">All  Items</option>                        
    </c:otherwise>
     </c:choose>
   </select>

しかし、何らかの理由で、コードは c:when に入らず、それ以外のセクションに直接移動します。

私は広範囲にJSTLを使用しましたが、何らかの理由でこれを取得できません.値がリクエストスコープに存在し、c:outタグを介してそれを見ることができることを知っています.同じページへのポストバックを再度行うことは可能ですか?新しい値を持つ同じセッションで再び?すでにこの問題に 1 日を費やしています。どなたか見ていただけると助かります。

4

1 に答える 1

2

これは間違っています。

<c:when test="${select} == All">

式全体を内部に入れる${}必要があり、文字列を引用符で囲む必要があります。

<c:when test="${select == 'All'}">

以下も参照してください。


具体的な問題とは関係ありませんが、具体的な機能要件は、サーブレットがパラメーターをコピーする必要なく、はるかに簡単な方法で解決できます。

<select name="option">
    <option id="id" class="cl" value="All" ${param.option == 'All' ? 'selected : ''}>All Items</option>                        
</select>

以下も参照してください。

于 2013-01-31T02:02:18.903 に答える