代码之家  ›  专栏  ›  技术社区  ›  David Collard

如何使用JSP删除表中的行。错误:NumberFormatException:null。->整数parseInt(未知源)

  •  0
  • David Collard  · 技术社区  · 7 年前

    我正在使用HSQLDB,试图让CRUD操作在表上运行。 删除功能有问题。 我不确定是否正确传递了“carId”的值。

    编辑:现在,当我点击删除链接时,会显示一个空白页面,没有显示错误。

    指数jsp

    <td>
          <c:if test="${sessionScope.user != null}">
          <a name="${car.id}"  href="DeleteCarServlet?carId=${car.id}"> Delete </a>
          </c:if>
    </td>
    

    卡尔多

    public Car deleteCar(int id) {
    
        Connection connection = Utils.getConnection();
        Car car = null;
        try {
            PreparedStatement psmt = connection
                    .prepareStatement("DELETE FROM CAR WHERE ID = ?");
            psmt.setInt(1, id);
            psmt.executeUpdate();
            //list();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return car;
    }
    

    DeleteCarServlet

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        int carId = Integer.parseInt(request.getParameter("carId"));
        Car car = CarDAO.instance.getById(carId);
        CarDAO.instance.deleteCar(carId);
    
        request.getRequestDispatcher("index.jsp").forward(request, response);
    

    &燃气轮机;

    2 回复  |  直到 5 年前
        1
  •  1
  •   Ramanlfc    7 年前

    <a name="${car.id}" href="DeleteCarServlet?carId=${car.id}"> Delete </a> .

    锚定标记使 GET 请求,而不是 POST .

    您的请求以 doGet()

        2
  •  0
  •   David Collard    7 年前

    从上面的答案继续。而不是使用锚标签;我使用按钮或输入类型=“提交”来解决问题。

    <td>
        <form action="${pageContext.request.contextPath}/DeleteCarServlet?carId=${car.id}" method="post">
            <button type="submit" name="deleteBtn" class="btn btn-outline-primary" value="deleteBtn">Delete</button>
        </form>
    </td>