Используя request.setAttribute на странице JSP

22
задан axel22 8 July 2011 в 20:22
поделиться

5 ответов

Нет. К сожалению, объект Запроса только доступен, пока страница не заканчивает загружаться - как только это завершено, Вы потеряете все значения в нем, если они не были сохранены где-нибудь.

, Если Вы хотите сохранить атрибуты через запросы, Вы должны также:

  1. Имеют скрытый вход в Вашей форме, такой как <input type="hidden" name="myhiddenvalue" value="<%= request.getParameter("value") %>" />. Это тогда будет доступно в сервлете как параметр запроса.
  2. Выразился на сессии (см. request.getSession() - в JSP, это доступно как просто session)

, я рекомендую использовать Сессию, поскольку легче справиться.

25
ответ дан 29 November 2019 в 04:47
поделиться

Ответ Phil Sacre был корректен однако, сессия не должна использоваться только для ада его. Необходимо только использовать это для значений который действительно потребность жить в течение времени жизни сессии, такой как пользовательский вход в систему. Распространено видеть, что люди злоупотребляют сессию и сталкиваются с большим количеством проблем, особенно при контакте с набором или когда пользователи возвращаются к странице, они ранее посетили только, чтобы найти, что у них есть значения, все еще остающиеся от предыдущего посещения. Умная программа минимизирует объем переменных как можно больше, плохой использует сессию слишком много.

4
ответ дан 29 November 2019 в 04:47
поделиться

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

Думают, что Вы пересекаете от страницы 1-> страница 2-> страница 3.

, у Вас есть некоторый набор значений в объекте запроса, использующем setAttribute от страницы 1, которую Вы получаете на странице 2 с помощью getAttribute, тогда при попытке установить что-то снова в том же объекте запроса получить его на странице 3 тогда, это приводит предоставление к сбою Вам нулевое значение как "запрос, который создал JSP, и запрос, который сгенерирован, когда JSP отправлен, является совершенно другими запросами, и любые атрибуты, помещенные в первый, не будут доступны на втором".

я имею в виду что-то вроде этого в сбоях страницы 2:

, Где, поскольку то же самое работало в случае страницы 1 как:

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

1
ответ дан 29 November 2019 в 04:47
поделиться

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

0
ответ дан 29 November 2019 в 04:47
поделиться

Попробуйте

request.getSession().setAttribute("SUBFAMILY", subFam);
request.getSession().getAttribute("SUBFAMILY");
2
ответ дан 29 November 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: