Перенаправление ввода формы из сервлета в другую форму

#java #javascript #forms #servlets

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

Вопрос:

У меня есть форма, созданная сервлетом, которая должна заполнять поле ввода текста из поиска. Итак, форма выглядит следующим образом :

 <form name="form1">
  <input type="text" readonly="true" value="" /> <button href="/searchServlet />
</form>
  

При нажатии кнопки открывается другая форма, которая выполняет поиск и отображает результаты в виде списка, из которого пользователь может выбрать любой результат. Выбранный идентификатор результата заполняет некоторые скрытые поля в форме. Теперь я получаю данные этих скрытых полей в «form1»? Существует ли какой-нибудь Javascript для этой цели? Или я могу перенаправить ввод с одного сервлета на другой?

Ответ №1:

JavaScript здесь действительно ваш друг. Также присвойте вводу имя и позвольте кнопке открыть диалоговое окно с помощью window.open() .

 <form name="form1">
  <input type="text" name="text1" readonly="true" />
  <button onclick="window.open('/searchServlet');">search</button>
</form>
  

Затем в HTML, сгенерированном /searchServlet и его JSP в диалоговом окне, вы можете использовать window.opener для получения родительского окна, а затем оттуда выполнять обычные document действия, как если бы вы сидели в родительском окне. Вот базовый пример запуска:

 <button onclick="window.opener.document.form1.text1.value='1'; window.close();">1</button>
<button onclick="window.opener.document.form1.text1.value='2'; window.close();">2</button>
<button onclick="window.opener.document.form1.text1.value='3'; window.close();">3</button>
  

Конечно, вы хотели бы абстрагироваться / реорганизовать детализацию / дублирование в какой-либо функции.