【问题标题】:Sending selected object from JSP to Servlet将选定对象从 JSP 发送到 Servlet
【发布时间】:2014-03-19 04:45:30
【问题描述】:

我是 Java EE 的初学者,我已经开始实现一个小型在线书籍商店购物车示例来学习和应用基本概念。 当用户搜索一本书时,它会给出一个推荐书籍的列表,然后用户通过单击“添加到购物车”按钮开始将这些书籍添加到购物车中。

我已经使用隐藏输入类型发送了。

下面是我的 JSP 代码。

  <% 
    List<BookDetails> newlist = new ArrayList<BookDetails>();    
    newlist = (List)session.getAttribute("currentSession");
  %>
    <table>
       <form name="DisplayResult" action="addToCartServlet">
    <tr>
       <td><b>Book</b></td><td><b>Price</b></td>
    </tr>

  <%
    for (int i = 0; i < newlist.size(); i++) 
    {
       BookDetails book1 =newlist.get(i);
  %>
  <tr>
   <td><%=book1.getBookName()%></td>
   <td><%=book1.getPrice()%></td>
   <td>
       <input type="hidden" name="ISBN" value="<%=newlist.get(i).getISBN()%>">
       <input type="submit" name="action" value="Add to Cart">
  </td>
  </tr>
  <% }%>
  </form>
  </table>  

我正在通过 servlet 访问它,如下所示。 String isbn= request.getParameter("ISBN") ;

但它每次只需要任何按钮点击的第一个搜索结果值。 如何获得每本书的每个唯一 ISBN?

【问题讨论】:

  • 请格式化您的代码。
  • 不惜一切代价避免使用 scriptlet。
  • 不惜一切代价避免使用 scriptlet。! 我认为 Soririous 的警告并没有它需要的那么严厉。

标签: java jsp servlets


【解决方案1】:

您需要每行的表单来为每行传递不同的数据


【讨论】:

    【解决方案2】:

    他@Jigar Joshi 说得对,看起来是一样的。

    文本框如下:

    <form:input path="contacts[${status.index}].book" /> 
    
        <tr>
          <td align="center">${status.count}</td>
          <td><input name="contacts[${status.index}].book" value="${contact.book}"/></td>
          <td><input name="contacts[${status.index}].price" value="${contact.price}"/></td>
       </tr>
    

    行的解释是:

    contacts[${status.index}].book 
    

    它将按如下方式生成每一行:

    contacts[0].book // mapped to first item in contacts list
    contacts[1].book// mapped to second item in contacts list
    contacts[2].book// mapped to third item in contacts list
    

    行的解释是编码格式:

    <form:input path="contacts[${status.index}].book" />
    

    然后不要将其转换为以下 HTML 代码:

    <input name="contacts[0].book" />
    <input name="contacts[1].book" />
    <input name="contacts[2].book" />
    

    它将其转换为以下内容:

    <input name="contacts0.book" />
    <input name="contacts1.book" />
    <input name="contacts2.book" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 2013-03-29
      • 2021-08-03
      • 2013-04-27
      • 1970-01-01
      相关资源
      最近更新 更多