サーブレットの .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 を使用しています。助けてくれてありがとう!