Servlet getParameter() возвращает значение null, но значение передается

#java #html #forms #servlets

#java #HTML #формы #сервлеты

Вопрос:

У меня есть форма для регистрации на событие. В этой форме есть два скрытых поля для электронной почты пользователя и идентификатора события. Как вы можете видеть ниже.

 <form action="EventRegister" method="POST">
   <input type="hidden" name="id" value="${events.Id}"> 
   <input type="hidden" name="email" value="${pageContext.request.userPrincipal.name}">  
   <button type="submit" class="btn btn-primary">Anmelden</button>
</form>
  

Когда я вызываю сервлет, он завершается ошибкой в этих строках:

 Integer event = Integer.valueOf(request.getAttribute("id")); 
String email = request.getAttribute("email");
  

и генерирует исключения. getParameter() Метод также не работает. Integer event Выдает a NumberFormatException , значение String email также равно null . Я уже пробовал это только с одним из них, изменил их имена и так далее. Но они все равно равны нулю!

 java.lang.NumberFormatException: For input string: "null"
  

Странно то, что значения передаются. Как вы можете видеть в инструментах разработчика Chrome (ссылка в конце). Я не могу найти никаких ошибок. Я уже использую это во многих сервлетах, и это работает нормально.

Помогите мне, пожалуйста! Возможно, я делаю что-то совершенно неправильное, но я не могу найти свою ошибку.

Как вы можете видеть здесь

Комментарии:

1. Опубликуйте свой класс сервлета и веб-страницу

2. да … проверьте ссылку, как вы можете видеть там, значения передаются …

3. Но если вы зарегистрировались, вам будет показана форма выхода. Может ли это вызвать проблемы? Это та же форма, но вызывается сервлет SignOff-

4. Пожалуйста, проверьте все параметры в вашем сервлете, передаются они или нет, вы не можете быть уверены, проверив их в консоли вашего браузера.

5. Как я могу это сделать? 🙂 Извините, я не очень разбираюсь в Интернете.

Ответ №1:

Используйте request.getParameter(«id») вместо request.getAttribute(«id»). Поля HTML-формы извлекаются с помощью метода getParameter .

Если вы все еще получаете значение null, перезапустите сервер и повторно разверните свое приложение. Если после выполнения всего этого вы все еще получаете null, переустановите свой веб-контейнер.

Комментарии:

1. Большое вам спасибо. Решена.