请教servlet如何得到jsp页面中一个循环里input标签里输入的值。

<tablealign="center"><tr><th>商品名称</th><th>销售价格</th><th>购买数量</th><th>购物车</th></tr><c:f... <table align="center">
<tr>
<th>商品名称</th>
<th>销售价格</th>
<th>购买数量</th>
<th>购物车</th>
</tr>

<c:forEach var="shopPriceList" items="${shopPriceList}">
<tr>
<td><input type="text" name="wareName" value="${shopPriceList.wareName }" readonly></input></td>
<td><input type="text" name="salePrice" value="${shopPriceList.salePrice }" readonly></input></td>
<td><input type="text" name="saleNumber" ></input></td>
<td><a href="ShopCarServlet?wareName=${shopPriceList.wareName }&salePrice=${shopPriceList.salePrice }"><image border="0" src="image/buy.gif" /></a></td>
</tr>
</c:forEach>
</table>

以上是jsp中的一段代码,其中有一个<c:froEach>循环,中有一个input标签(name=saleNumber),如何在其中一个input中输入一个值后servlet能够得到输入的这个值.
我试过了用request.getParameter("saleNumber")无法得到循环里我输入的这个标签值。
求高手帮忙!谢谢
展开
 我来答
清心又谦恭丶布丁9
2011-09-15 · TA获得超过6604个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1874万
展开全部
楼主可以这样考虑
<c:set var="count" value="1">

每次循环的时候
<c:set var="count" value="${count+1}">
然后
<td><input type="text" name="saleNumber_${count}" ></input></td>
你在调方法的时候把count传进去
最后在servlet里。这样取值
href="XXX? count=${count};

在servlet里
int count=Integer.valueof(request.getPatemeter("count“));
String value=request.getPatemeter("saleNumber_"+count);
取值。我只提供思路。
具体过程和细节你自己写一下吧。。
我觉得这样只个取值的情况最好重设一个变量。然后用不同的name名或者 id名取值会更好。同时传参调用方法
追问
试过了,只能够得到这个输入框的name,值却是null,
追答
可以得到输入框的name,就说明确定了他的唯一性,值是null的话,你是不是看一下你的代码是不是出问题了哦?
或者,你试一下写个js,让他弹出这个值,看有值没
show('saleNumber_${count}');
百度网友15e1ccd
2011-09-21 · 超过15用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:44.3万
展开全部
楼主是这样的,你的a标签是一个URL链,并没有提交表单,所以你的页面元素是不可能通过这个方法到后台的。所有传到后台的参数都写在URL串里,这个串里有什么后台才能得到什么!

你可以应用楼上的<td><input type="text" id=="saleNumber_${count}" name="saleNumber" ></input></td>
也可以在<c:forEach >之前<% int i=0%>在a标签后</c:forEach>结束前加<%i++%>
然后在<td><input type="text" id=="saleNumber<%=i%>" name="saleNumber" ></input></td>两种方法的目的就是将页面saleNumber元素唯一化.
之后关键的地方就是要改你的a标签,将内容改成调用FUNCTION如下:
<a href="javascript:dosubmit('<%=i%>');"><image border="0" src="image/buy.gif" /></a>
function dosubmit(flag){
var saleNumber=document.getElementById("saleNumber"+flag).value;
var url=="ShopCarServlet?wareName=${shopPriceList.wareName }&salePrice=${shopPriceList.salePrice }&saleNumber="+saleNumber;
window.location.href=url;
}
注意最后加的&saleNumber="+saleNumber参数.这样在SERVLET中才能取到saleNumber的值与salePrice的取值方式一样;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tuoxingzhou
2011-09-14 · TA获得超过191个赞
知道答主
回答量:93
采纳率:0%
帮助的人:37.9万
展开全部
request.getParameterValues("")
用这个方法,返回的是一个String数组,你可以遍历数组来获取里面的值
追问
这个循环里共有4列,第一二列不论,第三列是输入列,四列是a标签链接。也就是说每一行都有一个输入框和一个链接标签,当我在输入框里输入值后,再点击同一行里对应的购买,在servlet里能够得到这一行里我输入的那个值,并不需要得到每行输入框的值,因为其它框初始是空白无值的。如图:我想得到三国演义这本书的购买数量(30),这个30是我在界面输入的值,该如何将这个值(30)传到servlet中. getParameterValues("")方法也不行
追答
提供一个思路,在点击购买的时候,用javascript去获取前面文本框的值然后把它传到servlet
如果只是单个购买的话这样可以实现,然后怎么获取值,你可以用它的id当做test的id来进行设这,在后面的a标签里进行onclick的调用,将前面的id当做参数传递到js里
例如:
)">
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stalin94
2011-09-24
知道答主
回答量:11
采纳率:0%
帮助的人:9.4万
展开全部
你这里用了循环 多个<td><input type="text" name="saleNumber" > 用request.getParameter("saleNumber")肯定得不到啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c_danny
2011-09-24
知道答主
回答量:10
采纳率:100%
帮助的人:4.4万
展开全部
或许你的shopPriceList数组里面根本没数据,你有没有在java类里测过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式