Suji
Suji

Reputation: 769

How to get array list size in java jsp?

I have a form that ask for user to enter ID. This form is send to a servlet which checks database to see if user exist. If the user exists then it sends me back their ordered items. The ordered items are returned as an array list. Then this array list is redirect to jsp file to display it on the webpage. The user can have more then one order, therefore the array list size can vary. How do I get the array list size so i can display each item in the array list? I do not want to use JSTL.

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>

}

Upvotes: 26

Views: 70370

Answers (4)

Lucas Basquerotto
Lucas Basquerotto

Reputation: 8123

Newer versions of EL accept using the methods defined in the class of the object in EL expressions, so you can simply call the size() method:

<span>Size: ${list.size()}</span>

Upvotes: 5

Birla
Birla

Reputation: 1

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

//Unchecked cast from Object to ArrayList 

Upvotes: -2

Anurag Anand
Anurag Anand

Reputation: 498

you should set scope of your UserFound.jsp to request.

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

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

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

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


</ul>

OR

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>

Upvotes: -2

Grzegorz Żur
Grzegorz Żur

Reputation: 49221

Use fn:length function.

Declare fn namespace on the begining of the JSP file

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

Later in the code

${fn:length(collection)}

Upvotes: 75

Related Questions