JSP动态表单中 传递多个Checkbox参数值的问题!!!!

时间:2022-03-16 08:52:56
我在一个JSP页面表单中列了一个表格,表格的每一行前有一个checkbox,checkbox的name="itemId" value="<%=item.getItemId()%",下面还有个提交按钮,这个表格可以正常显示.但是把checkbox的值传给下个页面时却没接受到参数!!!
我是这样接受的

String[] items=request.getParameterValues("itemId");

if(items!=null) {
 for(int i=0;i<items.length;i++) {
 
 if(action.equals("放入购物车")) cart.addItems(items[i],1);
 else
 if(action.equals("删除"))cart.removeItem(items[i]);
 
 
 }
}

这个items为null!  谁能给出可能出现的原因!!!

8 个解决方案

#1


可能你根本就没有给<%=item.getItemId()%>赋值

#2


当前页面表单可以正常显示,如其他的信息 名称,价格等
Item item=new Item("0",name,price,..);

我把所有的item封装在一个Vector里,从Vector里迭代取出信息
Item item=(Item)v.nextElement();

然后用<%=item.getName()%> <%=item.getItemId()%>来取值的

#3


我把代码贴出来
Shopping.jsp


<%@ page contentType="text/html;charset=GBK"%>
<jsp:useBean id="product" class="com.beans.Products" scope="session"/>
<%@page import="com.beans.*;"%>
<html>
<head>
<title>
欢迎您的购物
</title>
</head>

<body>
<%@ include file="header.jsp"%>
<center>
<form action="cart.jsp" method="post">

<table width="75%" border="1" bordercolor="#006633">
<tr bgcolor="#999999">
<td align="center">ID</td>
<td align="center">名称</td>
<td align="center">价格</td>
<td align="center">是否有货</td>
<td align="center">出版社</td>
</tr>
<%
response.setContentType("text/html;charset=GBK");
java.util.Vector v=product.getItems();

java.util.Enumeration e=v.elements();

while(e.hasMoreElements()) {
Item item=(Item)e.nextElement();
 
%>
<tr>
<td><input type="checkbox" name="itemId" value="<%=item.getItemId()%>"></td>
<td><%=item.getDescription()%></td>
<td><%=item.getPrice()%></td>
<td><%=item.isEmpty()%></td>
<td><%=item.getProducer()%></td>
</tr>
<%
}
%>
<tr>
<td align="left" colspan="5"><input type="submit" name="action" value="add"/></td>
</tr>
<tr>
<td align="left" colspan="5" ><a href="cart.jsp">查看购物车</a> &nbsp;&nbsp;<a href="loginout.jsp">注销</a></td>
</tr>
</table>
</form>
</center>
<%@ include file="foot.jsp"%>
</body>
</html>

#4


cart.jsp


<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="com.beans.*,java.util.*" %>
<jsp:useBean id="cart" class="com.beans.Cart" scope="session"/>
<jsp:useBean id="product" class="com.beans.Products" scope="session"/>

<html>
<head>
<title>
查看购物车
</title>
</head>
<body>
<%
String action=request.getParameter("action");

String[] items=request.getParameterValues("itemId");

if(items!=null) {
 for(int i=0;i<items.length;i++) {
 
 if(action.equals("add")) cart.addItems(items[i],1);
 else
 if(action.equals("删除"))cart.removeItem(items[i]);
 
 
 }
}

%>


<%@include file="header.jsp"%>
<center>
<form action="cart.jsp" method="get">
<table width="75%" border="1" bordercolor="#006633">
<tr bgcolor="#999999">
<td>ID</td>
<td>名称</td>
<td>数量</td>
</tr>
<%
java.util.HashMap hm=cart.getItems();
Iterator it=hm.keySet().iterator();

while(it.hasNext()){
String id=(String)it.next();

Item item=product.getItem(id);
  

%>
<tr>
<td><input type="checkbox" name="itemId" value="<%=item.getItemId()%>"/> </td>
<td><%=item.getDescription()%></td>
<td><%= hm.get(id)%></td>

</tr>
<%
} %>
<tr>
<td align="left" colspan="3"><input type="submit" name="action" value="删除"/></td>
</tr>
<tr>
<td align="left" colspan="3"><a href="shopping.jsp">继续购物</a>&nbsp;&nbsp;<a href="loginout.jsp"></a></td>
</tr>
</table>
</form>
</center>
<%@include file="foot.jsp"%>
</body>
</html>

#5


复杂

#6


一个购物车 没这么复杂吧,应该可以写个类就能实现了。

#7


<input type="checkbox" name="itemId" value="<%=item.getItemId()%>">
应该是这儿错了..是不是value没有值啊.确认一下..

#8


<input type="checkbox" name="itemId" value="<%=item.getItemId()%>">
改成<input type="checkbox" name="itemId" value="aa"> 然后你从里面去值,看能取出来不

#1


可能你根本就没有给<%=item.getItemId()%>赋值

#2


当前页面表单可以正常显示,如其他的信息 名称,价格等
Item item=new Item("0",name,price,..);

我把所有的item封装在一个Vector里,从Vector里迭代取出信息
Item item=(Item)v.nextElement();

然后用<%=item.getName()%> <%=item.getItemId()%>来取值的

#3


我把代码贴出来
Shopping.jsp


<%@ page contentType="text/html;charset=GBK"%>
<jsp:useBean id="product" class="com.beans.Products" scope="session"/>
<%@page import="com.beans.*;"%>
<html>
<head>
<title>
欢迎您的购物
</title>
</head>

<body>
<%@ include file="header.jsp"%>
<center>
<form action="cart.jsp" method="post">

<table width="75%" border="1" bordercolor="#006633">
<tr bgcolor="#999999">
<td align="center">ID</td>
<td align="center">名称</td>
<td align="center">价格</td>
<td align="center">是否有货</td>
<td align="center">出版社</td>
</tr>
<%
response.setContentType("text/html;charset=GBK");
java.util.Vector v=product.getItems();

java.util.Enumeration e=v.elements();

while(e.hasMoreElements()) {
Item item=(Item)e.nextElement();
 
%>
<tr>
<td><input type="checkbox" name="itemId" value="<%=item.getItemId()%>"></td>
<td><%=item.getDescription()%></td>
<td><%=item.getPrice()%></td>
<td><%=item.isEmpty()%></td>
<td><%=item.getProducer()%></td>
</tr>
<%
}
%>
<tr>
<td align="left" colspan="5"><input type="submit" name="action" value="add"/></td>
</tr>
<tr>
<td align="left" colspan="5" ><a href="cart.jsp">查看购物车</a> &nbsp;&nbsp;<a href="loginout.jsp">注销</a></td>
</tr>
</table>
</form>
</center>
<%@ include file="foot.jsp"%>
</body>
</html>

#4


cart.jsp


<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="com.beans.*,java.util.*" %>
<jsp:useBean id="cart" class="com.beans.Cart" scope="session"/>
<jsp:useBean id="product" class="com.beans.Products" scope="session"/>

<html>
<head>
<title>
查看购物车
</title>
</head>
<body>
<%
String action=request.getParameter("action");

String[] items=request.getParameterValues("itemId");

if(items!=null) {
 for(int i=0;i<items.length;i++) {
 
 if(action.equals("add")) cart.addItems(items[i],1);
 else
 if(action.equals("删除"))cart.removeItem(items[i]);
 
 
 }
}

%>


<%@include file="header.jsp"%>
<center>
<form action="cart.jsp" method="get">
<table width="75%" border="1" bordercolor="#006633">
<tr bgcolor="#999999">
<td>ID</td>
<td>名称</td>
<td>数量</td>
</tr>
<%
java.util.HashMap hm=cart.getItems();
Iterator it=hm.keySet().iterator();

while(it.hasNext()){
String id=(String)it.next();

Item item=product.getItem(id);
  

%>
<tr>
<td><input type="checkbox" name="itemId" value="<%=item.getItemId()%>"/> </td>
<td><%=item.getDescription()%></td>
<td><%= hm.get(id)%></td>

</tr>
<%
} %>
<tr>
<td align="left" colspan="3"><input type="submit" name="action" value="删除"/></td>
</tr>
<tr>
<td align="left" colspan="3"><a href="shopping.jsp">继续购物</a>&nbsp;&nbsp;<a href="loginout.jsp"></a></td>
</tr>
</table>
</form>
</center>
<%@include file="foot.jsp"%>
</body>
</html>

#5


复杂

#6


一个购物车 没这么复杂吧,应该可以写个类就能实现了。

#7


<input type="checkbox" name="itemId" value="<%=item.getItemId()%>">
应该是这儿错了..是不是value没有值啊.确认一下..

#8


<input type="checkbox" name="itemId" value="<%=item.getItemId()%>">
改成<input type="checkbox" name="itemId" value="aa"> 然后你从里面去值,看能取出来不