删除菜品的时候空指针异常,请问怎么处理呢

删除菜品的时候空指针异常,请问怎么处理呢

http://img1.sycdn.imooc.com//climg/5c3fcc720001fe1e13390687.jpg


protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

List<Food> foods = (List<Food>) request.getServletContext().getAttribute("foods");

String id = request.getParameter("id");

//

// if (!foods.isEmpty()) {

// for (Food fo : foods) {

// if (id.equals(fo.getId())) {

// foods.remove(fo);

// response.sendRedirect("/mook_food/showFoodList.jsp");

// return;

// } else {

// request.setAttribute("msg", "没有您输入的菜品id!");

// request.getRequestDispatcher("/deleteById.jsp").forward(request, response);

//

// }

//

// }

// }else {

// request.setAttribute("msg1", "当前没有任何菜品,请先添加!");

// request.getRequestDispatcher("/deleteById.jsp").forward(request, response);

// }

boolean flag = false;

for (Food fo : foods) {

   if (id.equals(fo.getId())) {

       foods.remove(fo);

   flag =  true;

   break;

   }

}        

if(flag) {

   request.getRequestDispatcher("/showFoodList.jsp").forward(request, response);

}else {

   request.setAttribute("msg", "没有您输入的菜品id!");

   request.getRequestDispatcher("/deleteById.jsp").forward(request, response);

}

}


老师,上面的代码注释部分是我第一次写的,下面一部分是按照您建议改的,都是报空指针异常。就是当我什么菜品都不添加,直接点击删除页面的时候,这时候foods都是空的,就是报这个错,请问应该怎么处理呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学的菜品信息是存放在ServletContext()中的吗?如果是,这时的foods没有获取到值,同学可以在修改后的代码外部添加foods为空的判断,如:

if (!foods.isEmpty()) {
       boolean flag = false;
        for (Food fo : foods) {
	    if (id.equals(fo.getId())) {
		foods.remove(fo);
		flag =  true;
		break;
	     }
	}        
	if(flag) {
	     request.getRequestDispatcher("/showFoodList.jsp").forward(request, response);
	}else {
	     request.setAttribute("msg", "没有您输入的菜品id!");
	    request.getRequestDispatcher("/deleteById.jsp").forward(request, response);
	}
    }
}else{
    request.setAttribute("msg1", "当前没有任何菜品,请先添加!");
    request.getRequestDispatcher("/deleteById.jsp").forward(request, response);

}

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 邱虎666 提问者 #1
    谢谢老师,应该是加上if(foods!=null)就好了,开来这个和foods.isEmpty()还是不一样的。
    2019-01-17 14:04:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师