【发布时间】:2013-12-14 02:50:20
【问题描述】:
我已经搜索了很多,但找不到我的错误。 我有一个 servlet 并尝试将 ArrayList 放入 bean:
ClientBean c = new ClientBean();
c.setList(ClientsHandler.getAllClients());
request.setAttribute("listClients", c);
RequestDispatcher dispatcher = request.getRequestDispatcher("showClients.jsp");
dispatcher.forward(request, response);
在“showClients.jsp”中,我尝试打印客户端 1 的电话:
<jsp:useBean id="listClients" class="beans.ClientBean" scope="request"/>
<% ArrayList<ClientsRowGateway> list = ((beans.ClientBean)request.getAttribute("listClients")).getList(); %>
<% out.println( ""+list.get(1).getPhone() ); %>
但我有一个 NullPointerException,因为我的对象列表为空。 我如何才能访问 bean 内的 ArrayList 内的对象(客户端)内的变量(getPhone())???
经过更多测试,我尝试在没有 bean 的情况下直接访问我的 ArrayList 并且可以正常工作,打印客户端电话!
<%
ArrayList<ClientsRowGateway> testList = ClientsHandler.getAllClients();
if( testList != null )
out.println( testList.get(1).getPhone() );
%>
但是我需要使用一个bean,我只是为了测试而这样做,所以有人可以帮助我吗?
【问题讨论】:
-
你确定
ClientsHandler.getAllClients()没有返回空值吗?另外,请不要使用 Scriptlet。 -
是的,我已经测试过并且工作正常。这不是问题。
-
老实说,这似乎是唯一的解释。打印出
ClientsHandler.getAllClients()的值,然后检查ClientBean#getList()的实现。
标签: java jsp servlets arraylist javabeans