一个jsp文件不能显示的问题?
我在做一个留言板,其中有个articlelist.jsp显示文章列表的页面,但一直都打不开。articlelist.jsp代码如下:
- HTML code
<!-- //留言列表页面 --><%@ page contentType="text/html;charset=gb2312" %><%@ page isELIgnored="false" %><%@ page import="ch.*"%><html><head> <script language="javascript" src="/messageboard/fckeditor/fckeditor.js">fuction checkValue(){ var f=document.forms["main"]; if(f.title.value.lentgh==0) { alert("请输入留言的标题"); f.title.focus(); return false; } if(f.content.value.length==0) { alert("请输入留言的内容"); f.content.focus(); return false; } return true;}</script></head> <body bgcolor="#000000" text="#fffaa"> <center> <table border="1" width="600"> <tr> <td colspan="3" align="center">留言列表(<a href="logout">退出</a>)</td> </tr> <tr> <td colspan="3" align="left"><font color="red"> ${msg}</font></td> </tr> </table> <table border="2" width="600"> <% //取得session中的用户信息 UserInfo user=(UserInfo)session.getAttribute("session_userinfo"); //取得留言列表 java.util.Vector articles=(java.util.Vector)request.getAttribute("articles"); //取得回复留言列表 java.util.Vector replys=(java.util.Vector)request.getAttribute("replys"); //逐步显示每一条留言的内容 for(int i=0;i<articles.size();i++) { Article art=(Article)articles.get(i); %> <tr> <td width="15" rowspan="2"> <%=(i+1) %> </td> <td> <%=art.getTitle() %> ( <%=art.getPubdate() %> ) </td> <td> <%=art.getUserID() %> ( <%=art.getHostIP() %> ) <% if(art.getUserID()==user.getUserID()) out.println("<a href=\"articleupdate?articleid="+art.getArticleID()+"\">修改</a> "); if(art.getUserID()==user.getUserID()||user.isAdmin()) out.println("<a href=\"articledelete?articleid="+art.getArticleID()+"\">删除</a>"); if(user.isAdmin()) out.println("<a href=\"articlereply?articleid="+art.getArticleID()+"\">回复</a>"); %> </td> </tr> <tr> <td colspan="2"><%=art.getContent() %></td> </tr> <% for(int j=0;j<replys.size();j++) { Article reply=(Article)replys.get(j); if(reply.getFarticleID()==art.getArticleID()) { %> <tr> <td width="15" rowspan="2"><font color="blue">回<br>复</font></td> <td><%=reply.getTitle() %>(<%=reply.getPubdate() %>)</td> <td><%=reply.getUserID() %> (<%=reply.getHostIP() %>) <% if(reply.getUserID()==user.getUserID())//?????????????????????????? out.println("<a href=\"articleupdate?articleid="+reply.getArticleID()+"\">修改</a> "); if(reply.getUserID()==user.getUserID()||user.isAdmin()) out.println("<a href=\"articledelete?articleid="+reply.getArticleID()+"\">删除</a>"); %> </td> </tr> <tr> <td colspan="2"><%=reply.getContent()%></td> </tr> <% } } } %> </table> <% PageBean pb=(PageBean)request.getAttribute("pagebean"); if(pb!=null&&pb.hasMorePage()) { pb.setURLPattern("<a href=\"articlelist?currentpage=CURRENTPAGE\">TITLE</a>"); %> <p> <table border="1" width="400"> <tr> <td align="center"> <%=pb.getFirstURL("首页") %> <%=pb.getPrevURL("前一页") %> <%=pb.getNextURL("后一页") %> <%=pb.getLastURL("末页") %> </td> </tr> </table> <% } %> <p> <form name="main" method="post" action="ch/ArticleAdd" onsubmit="return checkValue();"> <input type="hidden" name="articleid" value="${art.articleID}"> <table border="1" width="400"> <tr> <td colspan="2" align="center">发表留言</td> </tr> <tr> <td align="right">标题:</td> <td><input type="text" name="title" maxlength="32" value="${art.title}"></td> </tr> <tr> <td align="right">内容:</td> <td>"<script type="text/javascript"> var editor=new FCKeditor('content'); editor.BasePath='/messageboard/fckeditor/'; editor.Height=200; editor.ToolbarSet='Basic'; editor.Create(); </script></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="提交"> <input type="reset" value="重填"></td> </tr> </table> </form> </center> </body></html>
控制台反应的问题是:
2008-11-30 19:22:09 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.articlelist_jsp._jspService(articlelist_jsp.java:118)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
我这个工程中所有的jsp文件和java文件都能编译,eclipse没有显示“红叉”,但就是不能显示articlelist.jsp,请问是什么原因呢?
[解决办法]
不能显示?
还是页面跑起来无内容?
[解决办法]
这是一个空值错误。你可以查看work文件夹中的articlelist_jsp.java文件。
这里得到一个null
at org.apache.jsp.articlelist_jsp._jspService(articlelist_jsp.java:118)
广告时间:北京体检 北京旅游 石油新闻 个人博客 健康体检总汇
[解决办法]
java.lang.NullPointerException
at org.apache.jsp.articlelist_jsp._jspService(articlelist_jsp.java:118)
看一下jsp生成的servle源代码。
[解决办法]
这样的话很可能就是for(int i=0;i <articles.size();i++)中的articles.size()空指针了,你好好看看你的articles是不是为空,获取到值没有
[解决办法]
int size = articles!=null?articles.size():0;
for(int i=0; i<size; i++)
[解决办法]
- Java code
//取得session中的用户信息UserInfo user=(UserInfo)session.getAttribute("session_userinfo"); //取得留言列表java.util.Vector articles=(java.util.Vector)request.getAttribute("articles"); //取得回复留言列表java.util.Vector replys=(java.util.Vector)request.getAttribute("replys");