2015-03-13 71 views
1

您好每個機構我有這個jsp頁面,應該在調用方法showAvailableCards()後打印所有可用的卡。這發生在for循環中,循環遍歷ArrayList,out.print完成其餘部分。問題是我的for循環爲每條記錄打印一張表格。如何解決此問題?下面我的代碼:循環錯誤的打印表

    List<Card> cards = new ArrayList<Card>(); 
        Association asso = new Association(); 
        cards = asso.showAvailableCards(); 
        out.print("<br>"); 
        out.print("<h2>Available cards:</h2>"); 

        for (int i = 0; i < cards.size(); i++) { 
         Card card = new Card(); 
         card = cards.get(i); 


        out.print("<Table width=110% align=center border='1'>"); 
        out.print("<td><input type=hidden name=\"idcard\" ></td>"); 
        int idcard = card.getId(); 
        out.print("<tr><th>card Id</th>\n<th>Card number</th>\n <th>Attivation code</th>\n <th>Pin</th>\n <th>Amount</th>\n <th>Expiry date</th>\n <th>Select</th>\n</tr>"); 
        out.print("<td align=center>" + card.getId()+ "</td>"); 
        out.print("<td align=center>" + card.getCardNumber()+ "</td>"); 
        out.print("<td align=center>" + card.getAttCode()+ "</td>"); 
        out.print("<td align=center>" + card.getPin() + "</td>"); 
        out.print("<td align=center>&#8364; "+ card.getAmount() + "</td>"); 
        out.print("<td align=center>" + card.getExpiryMonth()+ "/" + card.getExpiryYear() + "</td>"); 
        out.print("<td align= center><input type=\"button\" value=\"Select\" onclick=\"exeForm(1,'CardExe.jsp',"+card.getId()+")\">"); 

        out.print("</table>"); 
        } 
+0

我想你可以先在for循環中不打印一個新的'

',它會爲循環的每一次迭代打印一張新表 – leigero2015-03-13 12:57:57

回答

3

把這些線:

out.print("<Table width=110% align=center border='1'>"); 

循環之前。 和此行的循環之後:

out.print("</table>"); 

此外:添加tr標籤內循環。

等你拿:

 out.print("<Table width=110% align=center border='1'>"); 
for (int i = 0; i < cards.size(); i++) { 
        Card card = new Card(); 
        card = cards.get(i); 


       out.print("<tr>"); 
       out.print("<td><input type=hidden name=\"idcard\" ></td>"); 
       int idcard = card.getId(); 
       out.print("<tr><th>card Id</th>\n<th>Card number</th>\n <th>Attivation code</th>\n <th>Pin</th>\n <th>Amount</th>\n <th>Expiry date</th>\n <th>Select</th>\n</tr>"); 
       out.print("<td align=center>" + card.getId()+ "</td>"); 
       out.print("<td align=center>" + card.getCardNumber()+ "</td>"); 
       out.print("<td align=center>" + card.getAttCode()+ "</td>"); 
       out.print("<td align=center>" + card.getPin() + "</td>"); 
       out.print("<td align=center>&#8364; "+ card.getAmount() + "</td>"); 
       out.print("<td align=center>" + card.getExpiryMonth()+ "/" + card.getExpiryYear() + "</td>"); 
       out.print("<td align= center><input type=\"button\" value=\"Select\" onclick=\"exeForm(1,'CardExe.jsp',"+card.getId()+")\">"); 
       out.print("</tr>"); 

       } 
       out.print("</table>"); 
1

我也試過這樣:

   List<Card> cards = new ArrayList<Card>(); 
       Association asso = new Association(); 
       cards = asso.showAvailableCards(); 
       out.print("<br>"); 
       out.print("<h2>Available cards:</h2>"); 
       out.print("<Table width=100% align=center border='1'>"); 
       out.print("<input type=hidden name=\"idcard\">"); 
       out.print("<tr><th>card Id</th><th>Card number</th><th>Attivation code</th> <th>Pin</th><th>Amount</th><th>Expiry date</th> <th>Select</th></tr>"); 

       for (int i = 0; i < cards.size(); i++) { 
        Card card = new Card(); 
        card = cards.get(i); 

        out.print("<tr>"); 
        int idcard = card.getId(); 
        out.print("<td align=center>" + card.getId() + "</td>"); 
        out.print("<td align=center>" + card.getCardNumber + "</td>"); 
        out.print("<td align=center>" + getAttCode() + "</td>"); 
        out.print("<td align=center>" + card.getPin() + "</td>"); 
        out.print("<td align=center>&#8364; " + card.getAmount() 
          + "</td>"); 
        out.print("<td align=center>" + card.getExpiryMonth() + "/" 
          + card.getExpiryYear() + "</td>"); 
        out.print("<td align= center><input type=\"button\" value=\"Select\" onclick=\"exeForm(1,'CardExe.jsp'," 
          + card.getId() + ")\">"); 
        out.print("</tr>"); 

       } 
       out.print("</table>"); 

稍微好一點恕我直言。但是如果沒有你的幫助,我不會那樣做。謝謝。