Отображать результаты обработки формы на текущей странице в JSP - PullRequest
0 голосов
/ 04 августа 2009

В настоящее время я могу отправить некоторые данные формы со страницы HTML сервлету, обработать их и вернуть результат, перенаправив / перенаправив на страницу displayresults.jsp; Однако мне интересно, есть ли способ обработать отправку формы таким способом и затем вернуть результаты на начальную страницу? Так что все, что я хочу вернуть, отображается под формой.

Идея в конце будет состоять в том, чтобы иметь функцию поиска вверху, а затем результаты поиска появиться ниже на той же странице.

Ответы [ 3 ]

2 голосов
/ 04 августа 2009
<c:choose>
<c:when test="${empty param.search}">
    <form method="post"><input type="text" name="search" /></form>
</c:when>
<c:otherwise>
    <%-- show search result here. --%>
</c:otherwise>
</c:choose>
1 голос
/ 04 августа 2009

Лично я почти всегда помещаю свои «критерии поиска» и «показ результатов» в один и тот же сервлет или файл JSP. Я пишу их с этой базовой структурой:

if request data is present
  collect search criteria from request object
  check for errors
else // i.e. first time in
  fill search criteria with blanks or defaults
end if

display error messages // if any, of course
display search criteria // either what we got from last cycle or defaults

if request data was present
  process request
  display results
end if

Мне нравится эта структура, потому что в случае ошибки я настроен на отображение неверных данных, позволяю пользователю исправить то, что было не так, и затем возвращаюсь назад. В случае успеха я собираюсь позволить ему скорректировать критерии и провести повторный запуск. Все в одном месте, но оно структурировано, так что это не беспорядок.

Когда это зависит от меня, я редко использую сервлеты: я предпочитаю использовать JSP для верхнего уровня и помещать нетривиальный не отображаемый код в другие классы, которые я просто вызываю, но это деталь реализации. Принцип работает как с сервлетами, так и с JSP.

1 голос
/ 04 августа 2009

Да

  1. Вставьте результаты в объект запроса из сервлета
  2. Получить сервлет для пересылка обратно на страницу запроса
  3. Добавьте некоторый код в JSP, чтобы извлечь результаты из объекта запроса и отобразить их

См. Простой пример http://www.tek -tips.com / viewthread.cfm? Qid = 1189624 & page = 11

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...