这里是 index.jsp 中的一部分代码
<%@ page language="java" import="java.util.*,com.fb.model.*" pageEncoding="utf-8"%>
<%//得到结果集al
int pageCount=0;
ArrayList al=(ArrayList)request.getAttribute("al");
//我的问题出在这里,在请求index.jsp时用到数据库中的数据ArrayList al (上边),这时al一定为空,于是下边请求控制器调用model处理,控制器把结果集放在request中forward到index.jsp,...问题是第一次请求index.jsp时al为空,无法运行了,抛出一个空指针的异常,下面的if判断就不执行了,我该怎么半?
if(al!=null){
//得到pagecount
String s_pageCount=(String)request.getAttribute("pageCount");
pageCount=Integer.parseInt(s_pageCount);
}else{
request.getRequestDispatcher("ShowGoodsClServlet?flag=getGoodsPage&pageNow=1").forward(request,response);
}
控制器 ShowGoodsClServlet 的代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String flag=request.getParameter("flag");
if(flag.equals("showDetial"))
{
//得到要显示的货物的ID
String goodsId=request.getParameter("id");
//调用GoodsBeanBO处理
GoodsBeanBO gbb=new GoodsBeanBO();
GoodsBean gb=gbb.getGoodsBean(goodsId);
request.setAttribute("goodsDetial",gb);
request.getRequestDispatcher("showDetial.jsp").forward(request,response);
}else if(flag.equals("getGoodsPage")){
try{
int pageNow=1;
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
pageNow=Integer.parseInt(s_pageNow);
}
//调用model处理
GoodsBeanBO gbb=new GoodsBeanBO();
ArrayList al=gbb.getgoodsByPage(pageNow);
if(al!=null){
System.out.println("al not null");
}
int pageCount=gbb.getpageCount();
request.setAttribute("al", al);
request.setAttribute("pageCount",pageCount+"");
request.getRequestDispatcher("index.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
<%@ page language="java" import="java.util.*,com.fb.model.*" pageEncoding="utf-8"%>
<%//得到结果集al
int pageCount=0;
ArrayList al=(ArrayList)request.getAttribute("al");
//我的问题出在这里,在请求index.jsp时用到数据库中的数据ArrayList al (上边),这时al一定为空,于是下边请求控制器调用model处理,控制器把结果集放在request中forward到index.jsp,...问题是第一次请求index.jsp时al为空,无法运行了,抛出一个空指针的异常,下面的if判断就不执行了,我该怎么半?
if(al!=null){
//得到pagecount
String s_pageCount=(String)request.getAttribute("pageCount");
pageCount=Integer.parseInt(s_pageCount);
}else{
request.getRequestDispatcher("ShowGoodsClServlet?flag=getGoodsPage&pageNow=1").forward(request,response);
}
控制器 ShowGoodsClServlet 的代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String flag=request.getParameter("flag");
if(flag.equals("showDetial"))
{
//得到要显示的货物的ID
String goodsId=request.getParameter("id");
//调用GoodsBeanBO处理
GoodsBeanBO gbb=new GoodsBeanBO();
GoodsBean gb=gbb.getGoodsBean(goodsId);
request.setAttribute("goodsDetial",gb);
request.getRequestDispatcher("showDetial.jsp").forward(request,response);
}else if(flag.equals("getGoodsPage")){
try{
int pageNow=1;
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
pageNow=Integer.parseInt(s_pageNow);
}
//调用model处理
GoodsBeanBO gbb=new GoodsBeanBO();
ArrayList al=gbb.getgoodsByPage(pageNow);
if(al!=null){
System.out.println("al not null");
}
int pageCount=gbb.getpageCount();
request.setAttribute("al", al);
request.setAttribute("pageCount",pageCount+"");
request.getRequestDispatcher("index.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
{
ArrayList al=(ArrayList)request.getAttribute("al"); } 不先判断!如果是空的话 会报错把!
<%@ page language="java" import="java.util.*,com.fb.model.*" pageEncoding="utf-8"%>
<% //得到结果集al
int pageCount=0;
ArrayList al=(ArrayList)request.getAttribute("al");
//我的问题出在这里,在请求index.jsp时用到数据库中的数据ArrayList al (上边),这时al一定为空,于是下边请求控制器调用model处理,控制器把结果集放在request中forward到index.jsp,...问题是第一次请求index.jsp时al为空,无法运行了,抛出一个空指针的异常,下面的if判断就不执行了,我该怎么半?
if(al!=null){
//得到pagecount
String s_pageCount=(String)request.getAttribute("pageCount"); pageCount=Integer.parseInt(s_pageCount); }else{
request.getRequestDispatcher("ShowGoodsClServlet?flag=getGoodsPage&pageNow=1").forward(request,response);
} -----------------------------------------------------
上边的代码(--之间)是在right.jsp中,而在index.jsp中 <jsp:include flush="true" page="right.jsp"></jsp:include>第一次请求index.jsp时,right.jsp中的al一定为空,于是做了一个if判断if(al!=null){
//得到pagecount
String s_pageCount=(String)request.getAttribute("pageCount"); pageCount=Integer.parseInt(s_pageCount); }else{
request.getRequestDispatcher("ShowGoodsClServlet?flag=getGoodsPage&pageNow=1").forward(request,response);
//response.sendRedirect("ShowGoodsClServlet?flag=getGoodsPage&pageNow=1");
} 在控制器ShowGoodsClServlet中取得al并把它放在request中,重新跳转到index.jsp(这里是应该跳转到index.jsp还是right.jsp? 我暂用index.jsp)
但是在right.sjp中的跳转并没有实现即request.getRequestDispatcher("ShowGoodsClServlet?flag=getGoodsPage&pageNow=1").forward(request,response);
al依然为空,?????