簡體   English   中英

將Arraylist值從servlet傳遞到Java中的JSP?

[英]Passing Arraylist values from servlet to JSP in java?

我正試圖顯示在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
  1. 在Servlet / Java中-將所有字段包裝到一個對象中 ,說出“客戶”
  2. 在JSP中使用JSTL ,請參考此示例,

    <c:forEach var="customer" items="CustomersList"> <c:out value="${customer.id}" /> <c:out value="${customer.userName}" /> <c:out value="${customer.password}" /> <c:out value="${customer.email}" /> </c:forEach>

CustomersList是要從Servlet傳遞到JSP的arrayList。

永遠記住,JSP的輸出是servlet響應的主體,在這種情況下為HTML 必須在開發和測試期間檢查生成的輸出,並且僅檢查其他程序(例如Web瀏覽器)對結果的處理是不夠的。

我傾向於認為,如果您實際上查看了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每個記錄僅包含五個數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM