Как получить размер списка массивов в java jsp?

У меня есть форма, которая просит пользователя ввести идентификатор. Эта форма отправляется сервлету, который проверяет базу данных, чтобы узнать, существует ли пользователь. Если пользователь существует, он отправляет мне обратно свои заказы. Заказываемые элементы возвращаются как список массивов. Затем этот список массивов перенаправляется в файл jsp, чтобы отобразить его на веб-странице. Пользователь может иметь более одного порядка, поэтому размер списка массивов может варьироваться. Как получить размер списка массива, чтобы я мог отображать каждый элемент в списке массивов? Я не хочу использовать 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>

}

Ответы

Ответ 1

Используйте функцию fn:length.

Объявить пространство имен fn в начале файла JSP

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

Позже в коде

${fn:length(collection)}

Ответ 2

вы должны указать область вашего UserFound.jsp для request.

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

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

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

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


</ul>

ИЛИ

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>

Ответ 3

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

//Unchecked cast from Object to ArrayList