在Java中将Arraylist值从servlet传递给JSP?

时间:2016-11-04 14:20:06

标签: java jsp servlets arraylist

我想显示我在java中放置在Arraylist中的值,并将其传递给JSP页面并将其显示在表格行中。但结果以一种非常奇怪的方式显示出来。请帮帮我。我被卡住了。

Servlet代码:

    ArrayList al = new ArrayList();
    while(rs.next())       
                  {
                      count ++;
                      String  country = rs.getString("CustomerCountry");
                      String customerid = rs.getString("CustomerID");
                      String TitleofAccount = rs.getString("TitleofAccount");
                      String FirstName = rs.getString("FirstName");
                      String LastName = rs.getString("LastName");
                      String City = rs.getString("City");
                      String Address = rs.getString("Address");
                      String emailid = rs.getString("EmailID");
                      String typeofid = rs.getString("TypeOfID");
                      String Idnumber = rs.getString("IDNumber");
                      String branchid = rs.getString("BranchID");
                      String cardnumber = rs.getString("CardNumber");
                      String bankaccntid = rs.getString("BankAccountID");
                      String currencyid = rs.getString("CurrencyID");
                      String isspeciallimit = rs.getString("IsSpecialLimit");
                      String dailylimit = rs.getString("DayTransactionLimit");
                      al.add(rs.getString("CardNumber"));
                      al.add(bankaccntid);
                      al.add(currencyid);
                      al.add(rs.getString("DayTransactionLimit"));
                      al.add(isspeciallimit);

JSP页面:

       <table width="700px" align="center" style="border:1px solid #000000;">
            <tr>
                <td colspan=4 align="center" style="background-color:teal">
                    <b>User Record</b></td>
            </tr>
            <tr style="background-color:lightgrey;">
                <td><b>Account No</b></td>
                <td><b>Card Number</b></td>
                <td><b>CurrencyID</b></td>
                <td><b>Daily Limit</b></td>
                <td><b>Status Limit</b></td>
            </tr>

<%
    if (request.getAttribute("al")!=null)
    {
        ArrayList arr = (ArrayList)request.getAttribute("al");
        for(int i=0;i<arr.size();i++) {
            out.println(arr.get(i) + "<html>&nbsp&nbsp<p></p></html>");
            //out.println("<html>&nbsp&nbsp</html>");
        }
    }
%>

输出:

    [kenya, K, 432342423, , 100000.0000, 0,
    kenya, Kumar11, 78788787878, OOOPP, 100000.0000, 0,
    kenya, Kb1, 001001000095, KES, 500000.0000, null]

我希望结果显示为:

    1st row - kenya, K, 432342423, , 100000.0000, 0,
    2nd row - kenya, Kumar11, 78788787878, OOOPP, 100000.0000, 0,
    3rd row - kenya, Kb1, 001001000095, KES, 500000.0000, null

2 个答案:

答案 0 :(得分:0)

  1. 在Servlet / Java中 - 将所有字段包装成对象,说&#34;客户&#34;
  2. 在JSP中使用 JSTL ,请参阅此示例

    ## tiled composite image img_tiles <- tile(img_stack, nx=nx, lwd=20, fg.col="white", bg.col="white") display(img_tiles, method="raster")

  3. CustomersList是您从Servlet传递给JSP的arrayList。

答案 1 :(得分:0)

永远记住,JSP的输出是servlet响应的主体,在本例中是 HTML 。必须在开发和测试期间检查生成的输出,并仅查看其他一些程序的结果 - 例如该输出的网络浏览器< - em>处理不足。

我倾向于认为如果您事实上已经查看了JSP发出的HTML,那么问题就会立即变得明显,如果它是通过您提供的JSP代码生成的,那么像这样的东西

<!-- [...] -->

<tr style="background-color:lightgrey;">
    <td><b>Account No</b></td>
    <td><b>Card Number</b></td>
    <td><b>CurrencyID</b></td>
    <td><b>Daily Limit</b></td>
    <td><b>Status Limit</b></td>
</tr>

kenya<html>&nbsp&nbsp<p></p></html>
K<html>&nbsp&nbsp<p></p></html>
432342423<html>&nbsp&nbsp<p></p></html>
 <html>&nbsp&nbsp<p></p></html>
100000.0000<html>&nbsp&nbsp<p></p></html>
0<html>&nbsp&nbsp<p></p></html>

<!-- [...] -->

(为了清晰起见,添加了换行符。)

此类代码非常不符合规范,而且它不会展示您应该用来表示表格数据的HTML结构(即<tr><td>元素)。

另一方面,我不知道您提供的输出如何来自您呈现的JSP代码,无论您是原始呈现还是呈现。输出看起来像是从out.println(arr)得到的,而不是一次打印一个列表元素。

此外,输出似乎与servlet代码不完全对应,因为它似乎每个记录包含六个数据,而你显示每个记录只提供五个servlet。