2017-11-30 22 views
0

HSQLDBを使用してCRUD操作をテーブル上で機能させようとしています。 削除機能に問題があります。 'carId'の値を正しく渡しているかどうかわかりません。JSPを使用してテーブル内の行を削除する方法。エラー:NumberFormatException:null - > Integer.parseInt(Unknown Source)

編集:削除リンクをクリックすると、空白のページが表示され、エラーは表示されません。 >

答えて

1

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

index.jsp

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

CarDAO

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); 

アンカータグは、ではなく、GETリクエストを作成します。

あなたの要求は、上記の回答に引き続きdoGet()

+0

ありがとうございます! ​​ 予期しないトークンエラーが発生しましたが、正しいトラックにいます。 https://imgur.com/a/ywOoW –

0

で終わるされます。アンカータグを使用するのではなく、私は問題を解決するためにボタンまたはタイプ= "submit"の入力を使用しました。

<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> 
関連する問題