这是异常:
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:415)
java.lang.Integer.parseInt(Integer.java:497)
cn.com.csuinfosoft.servlet.DVDServlet.updateDVD(DVDServlet.java:122)
cn.com.csuinfosoft.servlet.DVDServlet.doPost(DVDServlet.java:34)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
cn.com.csuinfosoft.filter.CharsetFilter.doFilter(CharsetFilter.java:25)这是我的JSP部分页面:if("true".equals(addOperate)) {
%>
<input type="text" name="id" value="<%= dvdVO == null?"":dvdVO.getDvd_id() %>">
<input type="hidden" name="actionType" value="addDVD">
<%
}else {
%>
<input type="text" name="id" value="<%= dvdVO == null?"":dvdVO.getDvd_id() %>" readonly>
<input type="hidden" name="actionType" value="updateDVD">
<%
}
%>
</td>
</tr>
<tr>
<td align="right">DVD名称:</td>
<td><input type="text" name="Name" value="<%= dvdVO == null?"":dvdVO.getDvd_name() %>"></td>
</tr>
<tr>
<td align="right">DVD类型:</td>
<td><input type="text" name="type" value="<%= dvdVO == null?"":dvdVO.getDvd_type() %>"></td>
</tr>
<tr>
<td align="right">是否是光碟[1:是,2:不是]:</td>
<td><input type="text" name="number" value="<%= dvdVO == null?"":dvdVO.getDvd_disk() %>"></td>
</tr>
<tr>
<td align="right">DVD价格:</td>
<td><input type="text" name="price" value="<%= dvdVO == null?"":dvdVO.getPrice() %>"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" value="<%= "true".equals(addOperate) ? "添加" : "修改" %>" onclick="doConfirm()">&nbsp;
<input type="reset" value="重置">这是Servlet:private void updateDVD(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

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

System.out.println(dvdIdStr);

Integer dvdId = Integer.parseInt(dvdIdStr);

System.out.println(dvdId);

String dvdName = request.getParameter("name");
String dvdType = request.getParameter("type");
Integer dvdDisk = Integer.parseInt(request.getParameter("disk"));
Double dvdPrice = Double.parseDouble(request.getParameter("price"));

DVD_VO dvdVO = new DVD_VO();

dvdVO.setDvd_id(dvdId);
dvdVO.setDvd_name(dvdName);
dvdVO.setDvd_type(dvdType);
dvdVO.setDvd_disk(dvdDisk);
dvdVO.setPrice(dvdPrice);

// DVD_VO dvdVO = (DVD_VO)request.getAttribute("dvdVO");

if(dvdDAO.updateInfo(dvdVO)) {
response.sendRedirect("dvdServlet?actionType=showDVDList");
}else {
request.setAttribute("MESSAGE", "修改DVD信息失败!");
request.setAttribute("addOperate", "false");
request.setAttribute("dvdVO", dvdVO);
request.getRequestDispatcher("DVDInfo.jsp").forward(request, response);
}

}求高手指点,从界面上能获得值,实在不晓得是什么原因了····

解决方案 »

  1.   

    Integer.parseInt 转int错误, 传入值 不是数字
      

  2.   

    建议在每次parse之前都System.out.println对应获得的值,看看有没有空的,或不合法的值
    楼主将updateDVD的方法换成下面我给的,然后重新检测一下,看看到底哪个值获取为null了,然后对应在JSP页面查代码吧
    private void updateDVD(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {        String dvdIdStr = request.getParameter("id");        System.out.println(dvdIdStr);
            if(dvdIdStr==null||dvdIdStr.isEmpty())
                     System.out.println("dvdIdStr值为空");        Integer dvdId = Integer.parseInt(dvdIdStr);        System.out.println(dvdId);        String dvdName = request.getParameter("name");
            String dvdType = request.getParameter("type");         if(request.getParameter("disk")==null||request.getParameter("disk").isEmpty())
                     System.out.println("disk值为空");
            Integer dvdDisk = Integer.parseInt(request.getParameter("disk"));
             if(request.getParameter("price")==null||request.getParameter("price").isEmpty())
                     System.out.println("price值为空");
            Double dvdPrice = Double.parseDouble(request.getParameter("price"));        DVD_VO dvdVO = new DVD_VO();        dvdVO.setDvd_id(dvdId);
            dvdVO.setDvd_name(dvdName);
            dvdVO.setDvd_type(dvdType);
            dvdVO.setDvd_disk(dvdDisk);
            dvdVO.setPrice(dvdPrice);//  DVD_VO dvdVO = (DVD_VO)request.getAttribute("dvdVO");        if(dvdDAO.updateInfo(dvdVO)) {
                response.sendRedirect("dvdServlet?actionType=showDVDList");
            }else {
                request.setAttribute("MESSAGE", "修改DVD信息失败!");
                request.setAttribute("addOperate", "false");
                request.setAttribute("dvdVO", dvdVO);
                request.getRequestDispatcher("DVDInfo.jsp").forward(request, response);
            }
      

  3.   

    建议在每次parse之前都System.out.println对应获得的值,看看有没有空的,或不合法的值
    楼主将updateDVD的方法换成下面我给的,然后重新检测一下,看看到底哪个值获取为null了,然后对应在JSP页面查代码吧
    private void updateDVD(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {        String dvdIdStr = request.getParameter("id");        System.out.println(dvdIdStr);
            if(dvdIdStr==null||dvdIdStr.isEmpty())
                     System.out.println("dvdIdStr值为空");        Integer dvdId = Integer.parseInt(dvdIdStr);        System.out.println(dvdId);        String dvdName = request.getParameter("name");
            String dvdType = request.getParameter("type");         if(request.getParameter("disk")==null||request.getParameter("disk").isEmpty())
                     System.out.println("disk值为空");
            Integer dvdDisk = Integer.parseInt(request.getParameter("disk"));
             if(request.getParameter("price")==null||request.getParameter("price").isEmpty())
                     System.out.println("price值为空");
            Double dvdPrice = Double.parseDouble(request.getParameter("price"));        DVD_VO dvdVO = new DVD_VO();        dvdVO.setDvd_id(dvdId);
            dvdVO.setDvd_name(dvdName);
            dvdVO.setDvd_type(dvdType);
            dvdVO.setDvd_disk(dvdDisk);
            dvdVO.setPrice(dvdPrice);//  DVD_VO dvdVO = (DVD_VO)request.getAttribute("dvdVO");        if(dvdDAO.updateInfo(dvdVO)) {
                response.sendRedirect("dvdServlet?actionType=showDVDList");
            }else {
                request.setAttribute("MESSAGE", "修改DVD信息失败!");
                request.setAttribute("addOperate", "false");
                request.setAttribute("dvdVO", dvdVO);
                request.getRequestDispatcher("DVDInfo.jsp").forward(request, response);
            }