2014-11-16 6 views
17

Ich habe ein Formular, das den Benutzer zur Eingabe der ID auffordert. Dieses Formular wird an ein Servlet gesendet, das die Datenbank überprüft, um festzustellen, ob ein Benutzer existiert. Wenn der Benutzer existiert, sendet er mir die bestellten Artikel zurück. Die bestellten Artikel werden als Array-Liste zurückgegeben. Dann wird diese Array-Liste zur jsp-Datei umgeleitet, um sie auf der Webseite anzuzeigen. Der Benutzer kann mehr als eine Bestellung haben, daher kann die Array-Listengröße variieren. Wie bekomme ich die Größe der Array-Liste, damit ich jedes Element in der Array-Liste anzeigen kann? Ich möchte JSTL nicht verwenden.Wie Array-Listengröße in Java Jsp erhalten?

index.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>JSP Page</title> 
<script> 
    /*function signin(id, id2) { 
    document.getElementById(id).style.display = 'block'; 
    document.getElementById(id2).style.display = 'none'; 
    //document.getElementById(id3).style.display = 'none'; 
    }*/ 
</script> 

<form id="Signin" method="post" action="FindUser"> 
    <h2>Login </h2> 
    <input type="text" name="txtCustID" 
      placeholder="UserID"><br> 
    <br><input type="submit" value="Find"> 
</form> 
<%--!<form id="Signup" method="post" action="FindUser" 
     style="display:none;"> 
    <h2>Sign Up </h2> 
    <input type="text" name="UserId" 
      placeholder="User ID"><br> 
    <br><input type="text" name="FirstaName" 
       placeholder="First Name"><br> 
    <br><input type="text" name="LastName" 
       placeholder="Last Name"><br> 
    <br><input type="text" name="Street" 
       placeholder="Street"><br> 
    <br><input type="text" name="City" 
       placeholder="City"><br> 
    <br><input type="submit" value="Sign Up"> 
</form> --%> 
</body> 

FindUser.java:

public class FindUser extends HttpServlet { 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse 
    response) throws ServletException, IOException { 


String sID = request.getParameter("txtCustID"); 

String url = ("admin/UserFound.jsp"); 
try { 
    Users one = UserDAO.findUser(sID); 
    request.setAttribute("theCustomer", one); 
    if (one.getFirstName().equals("none")) { 
     url = "admin/UserNotFound.jsp"; 
    } 
    ArrayList user_order = UserDAO.findOrder(sID); 
    request.setAttribute("theOrder", user_order); 
    response.sendRedirect(url); 
    //RequestDispatcher rd = request.getRequestDispatcher(url); 
    //rd.forward(request, response); 

} catch (ClassNotFoundException e) { 
    System.err.print("Failed to load Driver"); 
    System.err.print(e); 
} catch (SQLException e) { 
    System.err.print("SQL Error" + e); 
    System.err.print("SQL State: " + e.getSQLState()); 
    System.err.print("Error Code: " + e.getErrorCode()); 
} catch (Exception e) { 
    System.err.println(e); 
} 
} 

UserFound.jsp:

<%-- 
Document : CustomerFound 
Created on : Nov 15, 2014, 9:40:47 PM 
Author  : mississauga 
--%> 

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>JSP Page</title> 
</head> 
<body> 


<p>First word is: ${theOrder[x].getBoxes()}</P> 

<%--<form id="Signin" method="post" action="FindUser" 
     style="display:none;"> 
    <h2>Login </h2> 
    <input type="text" name="txtCustID" 
      placeholder="UserID"><br> 
    <br><input type="submit" value="Find"> 
</form> --%> 
</body> 
</html> 

} 

Antwort

51

Verwenden Sie fn:length Funktion.

Declare fn Namespace auf dem Anfang der JSP-Datei

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 

später im Code

${fn:length(collection)} 
-1

Sie Umfang Ihrer UserFound.jsp auf request setzen soll.

ArrayList orderList = (ArrayList) request.getAttribute("theOrder"); 

<ul> 
<% If(orderList != null) {%> 

    <% for(String orderName : orderList) { %> 
     <li> <%= orderName %> </li> 
    <% } %> 

<% }else{ %> 
    No Order Found 
<% } %> 


</ul> 

ODER

ArrayList orderList = (ArrayList) request.getAttribute("theOrder"); 
<ul> 
<% If(orderList != null) {%> 

<% for(int orderNum =0;i< orderList.size();++orderNum ) { %> 
    <li> <%= orderList.get(orderNum)%> </li> 
<% } %> 
<% }else{ %> 
    No Order Found 
<% } %> 
</ul> 
-1
ArrayList orderList = (ArrayList) request.getAttribute("theOrder"); 

//Unchecked cast from Object to ArrayList 
+1

Können Sie eine Erklärung hinzufügen, wie das funktioniert? –