读书人

取得表单内容为 空字符串 的原因

发布时间: 2012-05-24 11:55:41 作者: rapoo

求教:取得表单内容为 空字符串 的原因
问题:取得表单内容为 空字符串 的原因
详细描述:
1、在viewcart.jsp页面提交的表单内容在updatecaert.jsp页面内接收的到,但是取得却是空字符串(而不是null)。
2、页面组成结构:viewcart.jsp页面中装载了updatecaert.jsp页面。viewcart.jsp用来展示购物车;
updatecaert.jsp从viewcart.jsp获取数量来更新购物车信息,完成业务逻辑。
3、问题出在,在viewcart.jsp更新数量后,
在updatecaert.jsp取得的数量为空字符串,十分的不解。

页面大致代码如下
viewcart.jsp购物车展示页面:

HTML code
<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更新数量的页面
HTML code
<%    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


[解决办法]
不知到为什么不行,等懂的,像这种处里的一般要放到action里的,比如说servlet,处里完以后在放到界面上,
[解决办法]
有两个地方你修改一下,试试。
1)updatecart.jsp==〉updatecart.inc
2)<jsp:include page="updatecart.jsp" flush="false"/>
  ==〉
  <%@ include file=="updatecart.inc" %>


[解决办法]
把你的页面用浏览器打开后,右键查看源文件看是否存在你要取的ID!

读书人网 >J2EE开发

热点推荐