Html 如何在a<;中传递动态值;td>;元素添加到servlet

Html 如何在a<;中传递动态值;td>;元素添加到servlet,html,forms,jsp,servlets,Html,Forms,Jsp,Servlets,我在JSP中有以下代码,从servlet获取输入并将输出传递给另一个servlet <%ShoppingServlet ss = new ShoppingServlet(); ArrayList<Item> itemList = ss.viewItems(); // results from another servlet for (Item it: itemList){ out.print("<tr>"); out.print("<td

我在JSP中有以下代码,从servlet获取输入并将输出传递给另一个servlet

  <%ShoppingServlet ss = new ShoppingServlet();
ArrayList<Item> itemList = ss.viewItems(); // results from another servlet

for (Item it: itemList){
    out.print("<tr>");
    out.print("<td>"+it.getId()+"</td>");
    out.print("<td>"+it.getName()+"</td>");
    out.print("<td>"+it.getDesc()+"</td>");
    out.print("<td>"+it.getPrice()+"</td>");
    out.print("<td><input type=\"number\"  min = \"0\" placeholder=\"0\" size=\"2\"></td>");//user input for quantity 
    out.print("</tr>");

}
%>

哪个生成下表

我试图做的是允许用户更新数量,然后将所有最终值传递给另一台服务器

我曾想过将“td”元素中的值打印到“input”元素中,但在这种情况下,我将无法从原始servlet创建的arrayList中动态查看这些值

我想知道是否有办法获取生成的值并将其传递给下一个servlet


感谢您提供的所有帮助。

一种方法是将您输入的“名称”设置为项目的形式。您将获得如下值:

现在,当服务器提交表单时,servlet可以迭代请求参数。假设一个名为“request”的HttpServletRequest对象:


您可以更改代码以在表单元素内生成表。像这样:

out.print("<form action='/YOUR_SERVLET_MAPPING'>");
for (Item it: itemList){
    out.print("<tr>");
    out.print("<td>"+it.getId()+"</td>");
    out.print("<td>"+it.getName()+"</td>");
    out.print("<td>"+it.getDesc()+"</td>");
    out.print("<td>"+it.getPrice()+"</td>");
    out.print("<td><input name=\"entries\" type=\"number\"  min = \"0\" placeholder=\"0\" size=\"2\"></td>");//user input for quantity 
    out.print("</tr>");
out.print("<input value='Send Data' type='submit'>");
out.print("</form>");
}

如果我一开始没有将它们放在输入标记中,那么ganna会让表单捕获项的值吗?如果是这样,我如何将数量与每个项目相关联?表单将发送所有输入值。您将每个值与一个ID关联。您需要检查该值是否已更改,然后更新数据库。基本思想是,每个数量都通过一个id与数据库中的项目相关联。实际上,我的scriplet有表单标签。问题是,我无法传递从数据库生成的“Item”对象的值可能我不够清楚,但正如我在问题中提到的,如果我的值显示在输入元素中,获取它们不会是一个问题。但是它们动态地显示在表单元格元素
out.print(“+it.getId()+”)中out.print("<form action='/YOUR_SERVLET_MAPPING'>");
for (Item it: itemList){
    out.print("<tr>");
    out.print("<td>"+it.getId()+"</td>");
    out.print("<td>"+it.getName()+"</td>");
    out.print("<td>"+it.getDesc()+"</td>");
    out.print("<td>"+it.getPrice()+"</td>");
    out.print("<td><input name=\"entries\" type=\"number\"  min = \"0\" placeholder=\"0\" size=\"2\"></td>");//user input for quantity 
    out.print("</tr>");
out.print("<input value='Send Data' type='submit'>");
out.print("</form>");
}
String values[] = request.getParameterValues("entries");