2017-11-30 32 views
0

HSQLDB를 사용하여 테이블에서 CRUD 연산을 수행하려고합니다. 삭제 기능에 문제가 있습니다. 'carId'값을 올바르게 전달하는지 잘 모르겠습니다.JSP를 사용하여 테이블의 행을 삭제하는 방법. 오류 : NumberFormatException : null입니다. -> Integer.parseInt (Unknown Source)

편집 : 이제 삭제 링크를 누르면 오류가 표시되지 않은 빈 페이지가 표시됩니다.

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

답변

1

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

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

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

CarDAO

index.jsp

.

앵커 태그는 이 아닌 GET 요청을 만듭니다.

요청은 위의 답변에서에 계속 doGet()

+0

예, 감사합니다. 예기치 않은 토큰 오류가 발생했지만 올바른 경로에 있습니다. https://imgur.com/a/ywOoW –

0

에 종료된다. 앵커 태그를 사용하는 대신 문제를 해결하기 위해 버튼이나 입력 = "제출"을 사용했습니다.

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