将Bean从Servlet加载到JSP



我已经搜索了很多,但找不到我的错误。我有一个servlet,并尝试在bean中放入一个ArrayList:

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,因为我的对象列表是null。如何访问bean中ArrayList中对象(Client)内部的变量(getPhone())???

经过更多的测试,我尝试在没有bean的情况下直接访问我的ArrayList,并打印客户端电话!

<%
ArrayList<ClientsRowGateway> testList = ClientsHandler.getAllClients();
if( testList != null )
    out.println( testList.get(1).getPhone() );
%>

但我需要用一个豆子,我这样做只是为了测试,所以有人能帮我吗?

为什么不使用EL(表达式语言)??为了访问第二项,语句将是CCD_ 1。

如果您不能使用EL,那么当您使用useBean标记时,您已经声明了一个变量,这样您就可以直接访问bean so。

<jsp:useBean id="listClients" class="beans.ClientBean" scope="request"/>
<% ArrayList<ClientsRowGateway> list = listClients.getList(); %>
<% out.println( ""+list.get(1).getPhone() ); %>

我建议您检查getList方法是否正确返回列表。

我希望这将帮助你

检查您是否加载了正确的.jar。通常对于这类东西,您需要一些特定的jar来在服务器上运行JSP/servlet。

最新更新