2014-02-19 88 views
0

我是Java EE的初學者,我已經開始實施一個小型在線圖書商店購物車示例來學習和應用基本概念。 當用戶搜索一本書時,它會給出一個建議書的列表,然後用戶通過點擊添加到購物車按鈕來開始添加這些書。將所選對象從JSP發送到Servlet

我已經使用隱藏的輸入類型發送它。

以下是我的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?

+0

請格式化你的代碼。 –

+3

不惜一切代價避免腳本。 –

+0

**不惜一切代價避免scriptlets!** 我不認爲Soririous的警告是嚴格的,因爲它應該是。 –

回答

1

他@Jigar喬希告訴權,以同樣的方法看喜歡。

文本框如下:線的

<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[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 

解釋是編碼格式:

contacts[${status.index}].book 

其將如下產生每個行:

<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" />