request.getRequestDispatcher("../yang/soMain.jsp").forward(request, response);servlet中使用上面语句进行跳转,结果很好,转到那个页面,相关数据也都没错,但是为什么还会报出异常
org.apache.jasper.JasperException
这是什么异常,代表什么意思啊?
谢谢指点

解决方案 »

  1.   

    可能缺少struts的其他包,你把struts中的那些.jar包都导入工程中试试。
      

  2.   

    包异常,不太清楚。可是还能运行正确,说明你在运行这部分的时候没有用到这个包,可是在其他地方用到了
    建议重启下IDE试试
      

  3.   

    写完跳转语句后加一个
    return 语句.
      

  4.   

    原因是有的数据没找到,代码在下面,不好意思有点乱,我已经把问题转到了JSP分版里,放这希望有人能抽空给下指点
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { this.request = request;
    this.response = response; getRecords();
    }
    public void getRecords(){
    ArrayList records=new ArrayList();
    PoMainDao pomainDao=new PoMainDao();
                    records=pomainDao.newPoMain();
    request.setAttribute("records", records);//这里定义后,在调用函数里可以取到吗??
    int flag=0;
    if(request.getParameter("flag")!=null)
    flag=Integer.parseInt(request.getParameter("flag"));
    if(flag==1||flag==0){
    records=pomainDao.newPoMain();
    }
    else if(flag==2){
    records=pomainDao.payPoMain();
    }
    else if(flag==3){
    records=pomainDao.prePoMain();
    }
    else if(flag==4){
    int poid=Integer.parseInt(request.getParameter("poid"));
    inStock(poid);//问题出在这个函数里
    }

    request.setAttribute("records", records);
    try {
    request.getRequestDispatcher("../yang/poMain.jsp").forward(request, response);
    } catch (ServletException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }public void inStock(int poid){
                    
                  int num = 0;
                  num = Integer.parseInt(request.getParameter("flag"));
                  System.out.println(flag);//这里报异常NULLPointerException,为什么
                  request.getAttribute("records");//也会报错                                  
                try {
    request.getRequestDispatcher("../yang/poMain.jsp").forward(request, response);
    return;
    } catch (ServletException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }     
    }
      

  5.   

    忘了补充,按照上面的写法,问题就变了
    java.lang.IllegalStateException: Cannot forward after response has been committed还是很奇怪
      

  6.   

    楼上的是说在跳转后写return吗
    我试过了,还是不行的
    不知道是不是我理解错了
    request.getRequestDispatcher("../yang/poMain.jsp").forward(request, response); 
    return;
    上面是这样的,楼上是这意思吗??