【问题标题】:Load Bean from Servlet to JSP将 Bean 从 Servlet 加载到 JSP
【发布时间】: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


【解决方案1】:

为什么不使用 EL(表达式语言)?要访问第二项,句子将是${listClients.list[1].phone}

如果你不能使用EL,当你使用useBean标签时,你已经声明了一个变量,所以你可以直接访问bean。

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

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

希望对你有帮助

【讨论】:

  • 我已经用 EL 测试过了。我在 bean 中有方法 getList(),但是,我不知道为什么,也不起作用。我决定在 jsp 中使用 Java 代码,因为我没有使用 EL 的经验。
  • 我也直接尝试listClients.getList(),但是不行:/getList()方法是eclipse生成的,没问题。
  • 让我们尝试回复你的课程,看看我是否有同样的错误。
  • 你可以访问 servlet url 吗?我回复你的课程和你的代码,它与我发布的代码配合得很好。
【解决方案2】:

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

【讨论】:

  • 天哪,一个简单而愚蠢的大决议。我将我的项目传递给我的朋友,.jars 的引用是我的计算机地址 ^^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多