сохранить критерии поиска на странице JSP - PullRequest
0 голосов
/ 20 января 2010

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

Ответы [ 2 ]

1 голос
/ 20 января 2010

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

В качестве альтернативы, когда вы выбираете элемент в списке, вы можете перенаправить (вместо перенаправления, потому что если вы сделаете перенаправление, вы потеряете параметры запроса), на другую страницу, передав поисковый запрос в качестве параметра в запросе. , Одна из возможностей - создать форму с двумя скрытыми полями (запрос и выбранный элемент):

<form action="go_to_the_detail">
<input type="hidden" name="selectedItem" value="value_selected_item" />
<input type="hidden" name="query" value="query" />
</form>

На странице редактирования:

<form action="go_to_save_item">
<input type="hidden" name="query" value="query_obtained_from_the_request" />

item fields to be modified
</form>

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

0 голосов
/ 20 января 2010

Вы можете получить доступ к параметрам запроса в EL с помощью неявной переменной ${param}. Вы можете сохранить параметры запроса в последующих запросах с помощью элемента input type="hidden".

Таким образом, следующий базовый пример должен работать.

Страница A:

<form action="page B">
    <input type="text" name="search" value="${param.search}">
</form>

Страница B:

<form action="page A">
    <input type="hidden" name="search" value="${param.search}">
</form>

Имейте в виду, что они потеряются, когда вы выполните перенаправление вместо forward внутри сервлета, просто из-за того, что redirect создаст новый запрос, тем самым обработав первоначальный запрос, включая все его параметры и атрибуты.

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