问题:取得表单内容为 空字符串 的原因
详细描述:
1、在viewcart.jsp页面提交的表单内容在updatecaert.jsp页面内接收的到,但是取得却是空字符串(而不是null)。
2、页面组成结构:viewcart.jsp页面中装载了updatecaert.jsp页面。viewcart.jsp用来展示购物车;
updatecaert.jsp从viewcart.jsp获取数量来更新购物车信息,完成业务逻辑。
3、问题出在,在viewcart.jsp更新数量后,
在updatecaert.jsp取得的数量为空字符串,十分的不解。页面大致代码如下
viewcart.jsp购物车展示页面:<jsp:include page="updatecart.jsp" flush="false"/>
<jsp:include page="delitemfromcart.jsp" flush="false"/>
<form name="viewform" action="viewcart.jsp" method="post">
<table width="100%" border="0" align="CENTER" cellpadding="2"
cellspacing="1" bgcolor="#c0c0c0">
<tr bgcolor="#dadada">
<td height="22" width="36">
<div align="CENTER">
<font color="#000000">编号</font>
</div>
</td>
<td width="100" height="22">
<div align="CENTER">
<font color="#000000">菜名</font>
</div>
</td>
<td height="22" width="36">
<div align="CENTER">
<font color="#000000">单价</font>
</div>
</td>
<td height="22" width="36">
<div align="CENTER">
<font color="#000000">数量</font>
</div>
</td>
<td width="36" height="22">
<div align="CENTER">
<font color="#000000">金额</font>
</div>
</td>
<td width="36" height="22">
<div align="CENTER">
<font color="#000000">操作</font>
</div>
</td>
</tr><c:set var="cart" value="${sessionScope.CART}" scope="session"/>
<c:if test="${cart!=null}">
<c:set var="totalprice" value="${0.0+0.0}"/>
<c:forEach var="entry" items="${cart}">
<c:set var="item" value="${entry.value}"/>
<c:set var="totalprice" value="${totalprice+item.totalprice}"/>
<c:set var="dish" value="${item.dish}"/>
<tr bgcolor="#ffffff">
<td width="36" align="center" height="22">
<font color="#000000">${dish.dishid}</font>
</td>
<td width="100" height="22">
<font color="#000000">${dish.dishname}</font>
</td>
<td width="36" align="center" height="22">
<font color="#000000">${dish.nowprice}</font>
</td>
<td width="36" class="hh" align="center" height="22">
<input type="text" name="dishid_${dish.dishid}" value="${item.quantity}" />
</td>
<td width="36" class="bb" align="center" height="22">
<font color="#000000">${item.totalprice}</font>
</td>
<td width="36" class="bb" align="center" height="22">
<font color="#000000"><a href="viewcart.jsp?delid=${dish.dishid}">删除</a>
</font>
</td>
</tr> </c:forEach>
<tr>
<td width="36" class="bb" align="center" height="22">
<font color="#000000">总价</font>
</td>
<td width="36" class="bb" align="center" height="22">
<font color="#000000"><c:out value="${totalprice}"/></font>
</td>
</tr>
</c:if>
</table>
<input type="submit" name="submit" value="保存修改" />
<a href="show.jsp">继续购物</a>
<a href="settle?total=${totalprice}">结算</a>
</form>
updatecart.jsp更新数量的页面<%
request.setCharacterEncoding("GBK");
String submit = null;
submit = request.getParameter("submit");
if (submit != null && submit.equals("保存修改")) {
ArrayList<Dish> dishs=(ArrayList<Dish>)session.getAttribute("DISHS");
for (int i = 1; i <= dishs.size(); i++) {
String paramName="dishid_"+String.valueOf(i);
String sno=request.getParameter(paramName);
System.out.println("i="+i+",param="+paramName+",sno="+sno);
if (sno != null&& !"".equals(sno)) {
int quantity = Integer.parseInt(sno);
System.out.println(i+","+quantity);
CART.updateItem(i, quantity);
}
} session.setAttribute("CART", CART);
}
%>
输出结果:i=1,param=dishid_1,sno=
i=2,param=dishid_2,sno= //前两个,我明明输入了数量,但取出来的却是 空字符串(注意:不是null)
i=3,param=dishid_3,sno=null //疑惑,为什取不到我输入的值呀?
i=4,param=dishid_4,sno=null
i=5,param=dishid_5,sno=null
i=6,param=dishid_6,sno=null
i=7,param=dishid_7,sno=null
i=8,param=dishid_8,sno=null
i=9,param=dishid_9,sno=null
i=10,param=dishid_10,sno=null
详细描述:
1、在viewcart.jsp页面提交的表单内容在updatecaert.jsp页面内接收的到,但是取得却是空字符串(而不是null)。
2、页面组成结构:viewcart.jsp页面中装载了updatecaert.jsp页面。viewcart.jsp用来展示购物车;
updatecaert.jsp从viewcart.jsp获取数量来更新购物车信息,完成业务逻辑。
3、问题出在,在viewcart.jsp更新数量后,
在updatecaert.jsp取得的数量为空字符串,十分的不解。页面大致代码如下
viewcart.jsp购物车展示页面:<jsp:include page="updatecart.jsp" flush="false"/>
<jsp:include page="delitemfromcart.jsp" flush="false"/>
<form name="viewform" action="viewcart.jsp" method="post">
<table width="100%" border="0" align="CENTER" cellpadding="2"
cellspacing="1" bgcolor="#c0c0c0">
<tr bgcolor="#dadada">
<td height="22" width="36">
<div align="CENTER">
<font color="#000000">编号</font>
</div>
</td>
<td width="100" height="22">
<div align="CENTER">
<font color="#000000">菜名</font>
</div>
</td>
<td height="22" width="36">
<div align="CENTER">
<font color="#000000">单价</font>
</div>
</td>
<td height="22" width="36">
<div align="CENTER">
<font color="#000000">数量</font>
</div>
</td>
<td width="36" height="22">
<div align="CENTER">
<font color="#000000">金额</font>
</div>
</td>
<td width="36" height="22">
<div align="CENTER">
<font color="#000000">操作</font>
</div>
</td>
</tr><c:set var="cart" value="${sessionScope.CART}" scope="session"/>
<c:if test="${cart!=null}">
<c:set var="totalprice" value="${0.0+0.0}"/>
<c:forEach var="entry" items="${cart}">
<c:set var="item" value="${entry.value}"/>
<c:set var="totalprice" value="${totalprice+item.totalprice}"/>
<c:set var="dish" value="${item.dish}"/>
<tr bgcolor="#ffffff">
<td width="36" align="center" height="22">
<font color="#000000">${dish.dishid}</font>
</td>
<td width="100" height="22">
<font color="#000000">${dish.dishname}</font>
</td>
<td width="36" align="center" height="22">
<font color="#000000">${dish.nowprice}</font>
</td>
<td width="36" class="hh" align="center" height="22">
<input type="text" name="dishid_${dish.dishid}" value="${item.quantity}" />
</td>
<td width="36" class="bb" align="center" height="22">
<font color="#000000">${item.totalprice}</font>
</td>
<td width="36" class="bb" align="center" height="22">
<font color="#000000"><a href="viewcart.jsp?delid=${dish.dishid}">删除</a>
</font>
</td>
</tr> </c:forEach>
<tr>
<td width="36" class="bb" align="center" height="22">
<font color="#000000">总价</font>
</td>
<td width="36" class="bb" align="center" height="22">
<font color="#000000"><c:out value="${totalprice}"/></font>
</td>
</tr>
</c:if>
</table>
<input type="submit" name="submit" value="保存修改" />
<a href="show.jsp">继续购物</a>
<a href="settle?total=${totalprice}">结算</a>
</form>
updatecart.jsp更新数量的页面<%
request.setCharacterEncoding("GBK");
String submit = null;
submit = request.getParameter("submit");
if (submit != null && submit.equals("保存修改")) {
ArrayList<Dish> dishs=(ArrayList<Dish>)session.getAttribute("DISHS");
for (int i = 1; i <= dishs.size(); i++) {
String paramName="dishid_"+String.valueOf(i);
String sno=request.getParameter(paramName);
System.out.println("i="+i+",param="+paramName+",sno="+sno);
if (sno != null&& !"".equals(sno)) {
int quantity = Integer.parseInt(sno);
System.out.println(i+","+quantity);
CART.updateItem(i, quantity);
}
} session.setAttribute("CART", CART);
}
%>
输出结果:i=1,param=dishid_1,sno=
i=2,param=dishid_2,sno= //前两个,我明明输入了数量,但取出来的却是 空字符串(注意:不是null)
i=3,param=dishid_3,sno=null //疑惑,为什取不到我输入的值呀?
i=4,param=dishid_4,sno=null
i=5,param=dishid_5,sno=null
i=6,param=dishid_6,sno=null
i=7,param=dishid_7,sno=null
i=8,param=dishid_8,sno=null
i=9,param=dishid_9,sno=null
i=10,param=dishid_10,sno=null
解决方案 »
- WebLogic iframe跨域
- hibernate : Not Supported for DML Operation
- 关于ibatis缓存的使用
- struts从数据库中读取文件存在服务器上的一个问题,应用服务器使用tomcat
- 一个小的java聊天程序的疑问?
- **********oracle 创建触发器,一直不成功,不知道什么原因
- 用eclipse配置的user Library,在硬盘的哪个地方?
- Java 难题! 高手请来帮忙
- 大家讨论一下EJB QL的功能,和标准SQL相比,缺少什么功能?比如排序功能等。
- 高分请教调试问题。
- ClientAbortException: java.net.SocketException: Connection reset
- 用el表达式,或者jstl获取地址栏地址问题
<form name="viewform" action="viewcart.jsp" method="post">=》
<form name="viewform" action="updatecart.jsp" method="post">
可是为什么用myeclipse自带的tomcat时。我记得可以运行呀,还有刚才问的那个问题,也是这样。
今天把tomcat6集成到myeclipse后,一运行,就头大了。
竟然不可以呀~
将提交的action改成updatecart.jsp都不行了,好神奇呀……
将提交的action改成updatecart.jsp这样都不可以了……
难道还要改成servlet的方式吗……
1)updatecart.jsp==〉updatecart.inc
2)<jsp:include page="updatecart.jsp" flush="false"/>
==〉
<%@ include file=="updatecart.inc" %>
怎么传个数字这么费事呢。。
传数字和串字符,处理机制竟然不一样~
也不知道我哪里给改错了,前些日子在myeclipse自带的tomcat下还能正常运行呢。。
昨天改到tomcat6(因为要求在tomcat的安装目录下的lib中放置一个jar驱动包,myeclipse自带的tomcat中找不到lib,所以把tomcat6集成到myeclipse后,新问题来了)下后,就出现了这个么问题,难道原版的tomcat6解析要严格吗……
你看<input type="text" name="dishid_2" value="2" /><input type="text" name="dishid_4" value="4" />