【发布时间】:2011-12-01 17:28:43
【问题描述】:
我正在尝试打印问题列表(questionList)。当表单加载时,列表的元素应打印为标签。
在我的 java 文件中,我返回了一个问题列表。
在我的 servlet 代码中:
ArrayList<String> questionList = qd.getFormLabels();
request.setAttribute("question", questionList);
System.out.println("Hello World " + questionList);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/Home.Index.jsp");
if (rd != null){
rd.forward(request, response);
return;
在我的 jsp 代码中,当我访问此列表时,它给了我一个空指针异常。
jsp代码:
<%
ArrayList<String> LabelList = (ArrayList)request.getAttribute("question");
out.println(LabelList.size());
if(LabelList.isEmpty()==false)
{
for( int i = 0; i< LabelList.size(); i++)
{%>
<tr><td><%out.println(LabelList.get(i)); %></td></tr>
当我尝试打印它给出 null 的大小时。 请告诉我的流程是否正确以及servlet是否正确触发
【问题讨论】:
-
除了“呃?!”在几个层面上,只有少数可能性,比如列表为空、错误的 JSP 等。
-
浏览器地址栏的网址是什么?它是 servlet 的 URL 还是转发的 JSP 之一?
web.xml有过滤器吗?顺便说一句,您应该使用来自ServletRequest的请求调度程序,而不是ServletContext:request.getRequestDispatcher(...)。 -
@BalusC 寻找明确的请求修饰符的好点。
-
当应用程序启动时,URL 是 /Home.Index.jsp。我将请求转发到此 URL,因为数据将显示在此 jsp 上。
-
谢谢戴夫。但是当我在 servlet 中打印列表及其大小时,它会给我正确的大小和正确的输出。我认为请求没有正确转发到jsp。但我无法弄清楚。