我正在尝试从servlet中的.jsp中检索选定的值。选项中显示的值来自“Item”对象的ArrayList(包含变量ID,名称,描述,价格,quant)。
itemCatalog.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}
然后我收到一个空值。如果我尝试直接访问itemDetails.jsp上的原始“itemSelect”参数,那么我会收到正确的字符串。
这是我的问题:为什么servlet没有收到这个参数,我该怎么做才能修复它?从文本框接收参数有效。
(注意,我目前只是在继续处理之前尝试检索String值。)
如果有帮助,我在Vista上使用Netbeans 7.3和Glassfish 3.2.1。 谢谢你的帮助!
答案 0 :(得分:1)
试试这个
<%= request.getAttribute("tempID") %>
因为您将变量设置为属性
request.setAttribute("tempID",tempID);