| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Проблема передачи параметра из input поля |
| Автор: Жоржик 11.6.2011, 18:17 | ||||
Здравствуйте. Я новичек в J2EE, так что пока использую только сервлеты без JSP. Так вот, в сервлете метод GET:
А метод POST:
request.getParameter("newName") постоянно возвращает null. Что я делаю не правильно? Если users.setName() добавить строку, то все работает. |
| Автор: llalive 11.6.2011, 18:36 | ||
Куда отправляет данные Ваша форма?
Функция doPost выполняется при отправке данных - т.е. при нажатии на кнопку submit. Далее данные отправляются по пути LoginForm, указанному в параметре action формы. Проблема в том, что request.getParameter("newName") возвращает null? Собственно, на момент вызова массив с параметрами действительно пуст. Допустим если бы у Вас был другой сервлет, и на него ссылалась данная форма - то он бы принял Вашу переменную. Также бывает полезно использовать method=GET, дабы видеть что передаётся. Всё вышеизложенное ИМХО - могу ошибаться.. |
| Автор: Жоржик 11.6.2011, 19:04 | ||||
А без передачи в другой сервлет никак не получится? |
| Автор: llalive 11.6.2011, 19:42 | ||
| Ну допустим можно ссылаться на тот же сервлет (если прописать путь LoginForm для него). Из разряда "на костылях" Используйте функцию proceessRequest. Думаю нечто подобное должно работать. Т.е. сервлет будет выводить форму, затем редиректить сам на себя и, если параметр dataSend будет равен true - будет обрабатывать переправленную переменную newName (далее я так понял Вы её в базу сохраняете?).
Не проверял, ибо вырвано из контекста и не до конца ясна задача Вашей программы. Может выдавать NullException при проверке (request.getParameter("dataSend").equals("true")). Тогда ещё и на null придется проверять - (!request.getParameter("dataSend")==null). Вообщем, ###код в действии)). |
| Автор: Жоржик 11.6.2011, 19:52 |
| Спасибо. Проблему решил: прописал в form полный путь к сервлету out.print("<form action=\"../Example/LoginForm\" method=\"POST\">"). |
| Автор: Stolzen 12.6.2011, 13:00 |
Замените на <form action=\"\" method=\"POST\"> и все должно работать. |