1 首先附上My Code:
Integer reviewid=Integer.valueOf(request.getParameter("reviewid")); System.out.println(reviewid);Integer articleid=Integer.valueOf(request.getParameter("articleid")); if(ybReviewService.deleteReview(reviewid)>0){ System.out.println("加油啊");response.sendRedirect("YbReviewServlet?method=list&articleid="+articleid); }else{ request.setAttribute("msg","刪除評論失敗。<a href=\"JavaScript:window.history.back()\">返回</a>"); }}
2 出現這個報錯,一般要考慮
Integer.valueOf(request.getParameter("articleid"));
中擷取的值,可能是null;當然,也可以通過設定斷點或是像我一樣插入
System.out.println("加油啊");
這種語句來判斷;
3 所以,要檢查你擷取的資料是否為空白值;
4 我改過的代碼如下,當然,不會報錯了;
protected void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ Integer reviewid=Integer.valueOf(request.getParameter("reviewid")); System.out.println(reviewid); Connection con=null; con=DBUtil.getDb(); PreparedStatement pstmt=null; ResultSet rs=null; YbReview ybReview=null; String sql="select article_id from yb_review where review_id=?"; try{ pstmt=con.prepareStatement(sql); pstmt.setInt(1,reviewid); rs=pstmt.executeQuery(); while(rs.next()){ ybReview=new YbReview(); ybReview.setArticleid(rs.getInt("article_id")); } }catch(SQLException ex){ System.out.println(ex.getMessage()); }Integer articleid=ybReview.getArticleid(); if(ybReviewService.deleteReview(reviewid)>0){ System.out.println("加油啊");response.sendRedirect("YbReviewServlet?method=list&articleid="+articleid); }else{ request.setAttribute("msg","刪除評論失敗。<a href=\"JavaScript:window.history.back()\">返回</a>"); }}