![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| cuvorov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 7.5.2007 Репутация: нет Всего: нет |
Добрый день.
Есть JSF страница которая обслуживается @ViewScoped бином. На странице есть календарь на котором можно, выставить временной диапазон. Диапаазон хранится в бине в переменных типа Date. Если пользователь обновляет страницу через F5 значения календаря(переменные) сбрасываются на значения по умолчанию. Как сделать так что бы они переживали F5? SessionScope к сожалению не подходит. |
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
cuvorov,
Сохранить даты в url Это сообщение отредактировал(а) Vasay - 5.7.2012, 01:47 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 1 Всего: 17 |
А никак.
При рендеринге странице есть скрытое поле ViewState. И пока это поле присутствует в запросе, JSF понимает, с каким @ViewScoped бином связать запрос. Если оно отсутствует, то JSF создает новый ViewScoped бин и новый ViewState. Поэтому тут только или SessionScope, или ConversationScope из CDI может подойти... и не без проблем Это сообщение отредактировал(а) korian - 13.7.2012, 13:36 |
|||
|
||||
| Vasay |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
korian,
Не обязательно на странице. ViewState может сохраняться на сервере: web.xml
Наверно, при желании все же можно засунуть даты в URL. Конечно, это будет некий "костыль". Для GWT я такие "костыли" видел, когда состояния компонентов сохраняется в URL. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
||||||
|
|||||||
| korian |
|
||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 1 Всего: 17 |
На сколько я понимаю ViewState сохраняется всегда, при наличае формы и необходимости. Необходимость в данном случае - это существование ViewScoped бина. Разница лишь в виде, в котором он сохраняется. Вот пример:
Резултат 1:
Результат 2:
Это сообщение отредактировал(а) korian - 15.7.2012, 01:22 |
||||||||||||||
|
|||||||||||||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
korian,
Да, Вы правы. В случае с "server" он пишет в поле "javax.faces.ViewState" некий id по которому связывает данные сохраненные на сервере с конкретной формой для конкретного запроса. Суть не меняется - при обновлении страницы теряем этот id, соответственно теряем ViewScoped бин. Ну тогда только как-то положить данные в URL. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |