2016-11-04 7 views
0

Ich versuche, die Werte, die ich in einem Arraylist in Java platziert habe, anzuzeigen und es an die JSP-Seite zu übergeben und es in einer Tabellenzeile anzuzeigen. Aber die Ergebnisse werden auf wirklich bizarre Weise angezeigt. Bitte hilf mir. Ich stecke fest.Übergeben von Arraylist-Werten von Servlet zu JSP in Java?

Servlet-Code:

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-Seite:

 <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>"); 
     } 
    } 
%> 

Ausgang:

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

Ich möchte die Ergebnisse als angezeigt werden:

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 
+0

Am Ende des Teils "Servlet Code" fehlt ein Code. Bitte vervollständigen Sie es, sonst gibt es keine Möglichkeit, genau zu diagnostizieren, was passiert. Ich habe meine Vermutungen, aber es macht keinen Sinn, blinde Vermutungen anzustellen. – t0r0X

Antwort

0
  1. In Servlet/Java - Wrap alle Felder in ein Objekt, sagen Sie "Kunde"
  2. Verwenden JSTL innerhalb JSP finden Sie dieses Beispiel,

    <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 ist die ArrayList, die Sie von Servlet an JSP übergeben.

0

Immer daran denken, dass die Ausgabe einer JSP der Körper einer Servlet-Antwort ist, die in diesem Fall HTML ist. Es ist wichtig, die erzeugte Ausgabe während der Entwicklung und des Testens zu überprüfen und nur das Ergebnis einiger anderer Programme zu überprüfen - z. Ein Webbrowser - Verarbeitung dieser Ausgabe ist nicht ausreichend.

Ich bin geneigt zu denken, dass das Problem für Sie sofort offensichtlich geworden wäre, wenn Sie tatsächlich den HTML-Code Ihrer JSP überprüft hätten, der, wenn er über den JSP-Code generiert wurde, etwas aussah wie diese

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

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

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

(Zeilenumbrüche für Klarheit hinzugefügt.)

Solcher Code ist grotesk nicht konforme und es darüber hinaus weist keine der HTML-Struktur, die Sie erwarten sollten verwenden tabellarische Daten darzustellen (dh <tr> und <td> Elemente).

Auf der anderen Seite sehe ich nicht, wie die Ausgabe, die Sie präsentieren, von dem JSP-Code kommen könnte, den Sie präsentieren, ob Sie es roh darstellen oder gerendert. Die Ausgabe sieht so aus, wie Sie es von out.println(arr) bekommen würden, statt die Listenelemente einzeln zu drucken.

Darüber hinaus scheint die Ausgabe nicht ganz dem Servlet-Code zu entsprechen, da sie anscheinend sechs Daten pro Datensatz enthält, während Sie das Servlet nur für fünf pro Datensatz bereitstellen.

Verwandte Themen