Доступна ли область видимости bean Navigation JSF
Я довольно запутался в области представления. Я думал, что он может пережить навигацию JSF на другую страницу (без перенаправления, очевидно), но это не так. Итак, какое преимущество использовать вместо области запроса, что если я вызову тот же самый вид, это будет тот же объект?
Ответы
Ответ 1
Преимущество состоит в том, что bean сохраняет обратную передачу в виде того же. Вам больше не нужно сохранять какие-либо данные при использовании в атрибутах rendered
или в качестве модели для h:dataTable
или как скрытые входы и т.д. Раньше для этого использовалось много хаков.
Объект с видимым охватом bean живет до тех пор, пока вы взаимодействуете с тем же представлением (т.е. вы возвращаете void
или null
в метод действия bean). Когда вы переходите к другому виду, например. щелкнув ссылку или вернув другой результат действия, то область видимости bean будет разбита на конец ответа рендера и не будет доступна в следующем запросе.
См. также:
Ответ 2
Разорвано прямо из Core JavaServer Faces, 3rd Edition:
Просмотр области
В JSF 2.0 была добавлена область просмотра. A bean область видимости сохраняется в то же время Страница JSF отображается повторно. (В спецификации JSF используется термин term для страницы JSF.) Как только пользователь перейдет на другую страницу, bean выходит за пределы области.
Если у вас есть страница, которая продолжает перерисовываться, вы можете поместить beansкоторые содержат данные для этой страницы в области видимости, тем самым уменьшая размер сфера сеанса. Это особенно полезно для приложений Ajax.
Ответ 3
Возможно, вы ищете FlowScoped bean:
Лица потоков
Функция Faces Flows технологии JavaServer Faces позволяет создавать набор страниц с областью, FlowScoped, который больше, чем область запроса, но меньше, чем область сеанса. Например, вы можете создать серию страниц для процесса проверки в интернет-магазине.. Вы можете создать набор автономных страниц, которые могут быть переданы из одного магазина в другой по мере необходимости.