Данные JSP в сервлет с использованием EL - PullRequest
1 голос
/ 07 марта 2011

Добрый день!

Я пытаюсь удалить запись.Но прежде чем удалить его, я покажу подтверждающее сообщение, используя JSP, следующим образом: (идентификатор и имя из сервлета «Выбор идентификатора»)

  <form action = "Delete">    
  Id: ${student.id} <br>
  <input type="submit" value="Delete">  
  </form>

И мой код удаления выглядит следующим образом:

public class Delete extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String query = "Delete FROM customer WHERE id = ?";

        try {

            Context context  = new InitialContext();
            DataSource ds = (DataSource) context.lookup("jdbc/myDatasource"); 
            Connection  con = ds.getConnection();
            PreparedStatement stmt = con.prepareStatement(query); 
            int id = Integer.parseInt(request.getParameter("id")); //ERROR HERE? 
            stmt.setInt(1, id);
            stmt.executeUpdate(query);

        } catch (Exception ex) {
            out.println("Error.... " + ex);
        }
}

Но у меня null pointer exeption.Кажется, что идентификатор не может быть прочитан.(Но я не уверен).Как передать данные из JSP в сервлет с помощью EL?Что вызывает ошибку и как я могу ее устранить?Спасибо.

1 Ответ

3 голосов
/ 07 марта 2011

Вам необходимо передать его следующему запросу как скрытое значение ввода в той же форме.

<input type="hidden" name="id" value="${student.id}" />
...