从Session变量中检索ArrayList

时间:2016-05-08 17:12:46

标签: java jsp servlets arraylist nullpointerexception

我正在尝试从我在会话变量中设置的ArrayList中检索信息。但它没有正确设置,因为当我运行searchList.isEmpty()时我得到一个空指针 servlet部分:

case "searchProducts":
    ArrayList<Product> searchList = new ArrayList<>();//create array
    Product testProduct = new Product(1500,"test","testing",100); //create product
    searchList.add(testProduct); //add product to ArrayList
    session.setAttribute("searchList", searchList);//sets session value to ArrayList
    view = request.getRequestDispatcher("SearchProduct.jsp"); //set view to JSP
    break;

我正在尝试获取信息的JSP看起来像这样,我包含了我尝试过的不同内容。 JSP:

<%
                ProductService ps = new ProductService();
                ArrayList<Product> searchList = (ArrayList<Product>)session.getAttribute("searchProduct");
                out.println(searchList.isEmpty());
                    //end test items


//                    if(searchList.isEmpty()== false){
//                        for(int count = 0; count < searchList.size(); count++){
//                            out.println("<option>");
//                            out.println(searchList.get(count).getName());
//                            out.println("</option>");
//                        }//end for
//                    }//end if
%>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

代码中的错字。 您使用&#34; searchList&#34;在设置属性时作为键,但是当您尝试检索它时,使用session.getAttribute(&#34; searchProduct&#34;); searchProduct没有设置/不存在,所以

  

session.getAttribute(&#34; searchProduct&#34);

返回null并在调用isEmpty()时给出nullpointerexception。