1 首先附上我的代码:
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>");
}
}