Java 如何从JSP中的文本字段中获取自定义值?
我在一个非常简单的小型web应用程序中工作,它是一个处理购物车的jsp 此时我要做的是迭代存储在汽车中的所有产品,并在每次迭代时将它们逐个添加到jsp中 这是在每次迭代中向jsp添加一行的代码:Java 如何从JSP中的文本字段中获取自定义值?,java,javascript,jsp,Java,Javascript,Jsp,我在一个非常简单的小型web应用程序中工作,它是一个处理购物车的jsp 此时我要做的是迭代存储在汽车中的所有产品,并在每次迭代时将它们逐个添加到jsp中 这是在每次迭代中向jsp添加一行的代码: <tr> <td> <input type=text name=Quantity value=<%=quantity%>> </t
<tr>
<td>
<input type=text name=Quantity value=<%=quantity%>>
</td>
<td>
<input type=text name=id value=<%=id%>>
</td>
<td>
<input type=submit value="Delete" onclick=<%CustomSubmit(request, id); %>>
</td>
</tr>
如您所见,我在每行末尾添加了一个submit type控件,该控件带有一个用于处理单击事件的自定义方法,使用该控件可以从汽车中删除相应的产品
我遇到的问题是,当我单击产品的delete按钮时,传递给CustomSubmit(…)方法的id不是我试图删除的产品的id,而是添加到jsp的最后一个产品的id
因此,我的问题是,如何从要删除的项目中获取正确的id?我使用的方法如下: 替换
<input type=submit with a button
<input type="button" value="Delete" onclick="deleteIt('yourid');" />
我假设您的购物车是一个对象列表,每个对象都有属性id和数量。所以我希望您的代码看起来像这样(注意Peter关于使用“按钮”的回答):
我不完全确定您在原始代码中试图使用'request'参数做什么,但如果这是HTTP请求,那么当您尝试将其写入JSP时,您将得到的所有结果都是request.toString
方法的结果。您如何迭代购物车中的每个项目?我在ArrayList()中获得了它们这包含在会话作用域中的Java Bean中。感谢您的旁注,我将这样做,现在关于您的建议,我了解javascript函数部分,但是如何获取'yourid'变量,因为{m动态添加行,我不知道用户要删除的产品id是哪个,id包含在行的一列中,但我不知道如何获取它…好吧,实际上您可以忽略请求参数,这在此时并不重要;正如您所说,这正是我的工作方式,但是问题是,当触发事件并执行此代码“CustomSubmit(“”)”时,我没有从要删除的项中获取“cartItem.id”,而是从添加到jsp的最后一个项中获取“cartItem.id”。一种解决方案是尝试获取“cartItem”从列表中,但为了做到这一点,我需要知道我要删除的项目的行号,我也不知道如何获取行号。当您在浏览器中查看页面源时,表中的每一行是否具有相同的id?如果是,那么问题不在于此代码,而是在于迭代逻辑或购物车项目对象如果没有,那么你的JavaScript就出了问题,现在是时候破解Firebug并看看发生了什么。
dont use <input type=submit but use <input type="submit"
<td>
<input type="text" name="id" value="<%=id%>">
</td>
<td>
<input type="button" value="Delete" onclick="deleteItem('<%=id%>')">
</td>
<input type="button" value="Delete" onclick="CustomSubmit('<%=cartItem.id%>');"/>