![](/img/trans.png)
[英]NullPointerException when passing object from jsp to Servlet
[英]Passing ListArray<Object> from Servlet to JSP working in Windows but failing in Linux
一种将ListArray从我的Servlet传递到JSP页面的方法在Windows开发环境中运行良好,但在Linux环境中却失败了。
ListArray包含一组全局值,因此我立即在Servlet类中声明它,并在Init方法中填充它。
在doGet和doPost方法中,我将其分配给请求对象上的属性:
request.setAttribute("servers", servers);
request.getRequestDispatcher(page).forward(request, response);
在.jsp中,我对其进行检索和处理:
<%
ArrayList<Server> servers = (ArrayList<Server>) request.getAttribute("servers");
for(Server server : servers){
out.print("<p><form method='post' action='Controller' encType='multipart/form-data'><input type='hidden' name='action' value='control'/>");
out.print("<input type='hidden' name='name' value='"
+ server.getName() + "'/>");
out.print("<input type='hidden' name='url' value='"
+ server.getUrl() + "'/>");
out.print("<input type='hidden' name='local' value='"
+ server.getLocation() + "'/>");
out.print("<input type='hidden' name='port' value='"
+ server.getPort() + "'/>");
out.print("<input type='submit' value='Select'/><span class='label'> "
+ server.getName() + " </span></form><p>");
}
%>
首先,是的, 我知道scriptlet已过时 ,了解JSTL是本季度要做的事情。
在Windows中,这成功地将Server对象处理到一个整洁的列表中。 在Linux中,失败如下:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 82
79:
80: ArrayList<Server> servers = (ArrayList<Server>) request.getAttribute("servers");
81:
82: for(Server server : servers){
83:
84: out.print("<p><form method='post' action='Controller' encType='multipart/form-data'><input type='hidden' name='action' value='control'/>");
85: out.print("<input type='hidden' name='name' value='"
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NullPointerException
org.apache.jsp.index_jsp._jspService(index_jsp.java:151)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.55 logs.
我在两个环境中都运行Java 1.7.0_07。
关于为什么这种通过arraylist的方法在Linux中失败的想法?
关于为什么这种通过arraylist的方法在Linux中失败的想法?
一种可能性是arraylist为null
或其元素之一或其元素的字段之一为null
。 我怀疑这是在servlet中发生的...在转发请求之前。
但是,对此进行推测并不能帮助您解决问题。 您需要做的是:
null
是...(最终),它从何而来。 如果逻辑推理不起作用,请添加一些跟踪记录以找出null
的来源。
不幸的是,我们没有证据为您执行此操作。
但好消息是您应该能够自己弄清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.