0

サーブレットの .jsp から選択した値を取得しようとしています。オプションに表示される値は、"Item" オブジェクトの ArrayList から取得されます (変数 ID、名前、説明、価格、量)。

itemsCatalog.jsp 内 (部分):

<form name="f1" action="ControllerServlet" method="GET">

    <select name="itemSelect">

        <c:forEach items="${list}" var="entry">

            <option value="${entry.ID}">${entry.name}</option>

        </c:forEach>
     </select>

  <br><input type="hidden" name="DETAILS" value="new"/>
  <br><input type="submit" name="Submit" value="Show Details"/>

</form>

ControllerServlet で、選択したオプションに次の方法でアクセスしようとしました。

String tempID = request.getParameter("itemSelect");

request.setAttribute("tempID",tempID);

request.getRequestDispatcher("itemDetails.jsp").forward(request,response);

ただし、 itemDetails.jsp でアクセスしようとすると

<%= request.getParameter("tempID") %>

また

${tempID}

次に、null 値を受け取ります。itemDetails.jsp の元の「itemSelect」パラメータに直接アクセスしようとすると、正しい文字列が返されます。

これが私の質問です。サーブレットがこのパラメーターを受信しないのはなぜですか?それを修正するにはどうすればよいですか? テキスト ボックスからのパラメーターの受信は機能します。

(注: 現在、処理を続ける前に文字列値を取得しようとしています。)

参考までに、私は Vista で Netbeans 7.3 と Glassfish 3.2.1 を使用しています。助けてくれてありがとう!

4

1 に答える 1

1

これを試して

<%= request.getAttribute("tempID") %>

変数を属性として設定するため

  request.setAttribute("tempID",tempID);
于 2013-04-24T12:44:39.937 に答える