2015-03-13 70 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>"); 

稍微好一点恕我直言。但是如果没有你的帮助,我不会那样做。谢谢。