@ViewScoped
относится только к JSF фреймворка MVC, а не к CDI фреймворка внедрения зависимостей. Область действия представления сохраняется до тех пор, пока вы взаимодействуете с одним и тем же представлением JSF. CDI на самом деле не имеет понятия «взгляды». Альтернативой CDI является @ConversationScoped
, который живет дольше, чем область запроса, но короче, чем область сеанса. Вы только должны контролировать завершение самостоятельно. При необходимости вы можете использовать MyFaces CODI для соединения JSF @ViewScoped
с компонентами CDI @Named
. Предстоящий JSF 2.2 будет иметь CDI-совместимый @ViewScoped
в пакете javax.faces.view
.
@FlashScoped
не существует в JSF. JSF flash scope в основном состоит из карты, которая поддерживается недолговечным cookie-файлом, который выживает при перенаправлениях HTTP. Вы не можете позволить JSF помещать управляемые компоненты в эту область. Вы должны вручную поместить / получить значения в / из карты и / или использовать ссылку #{flash}
в EL, которая в основном ссылается на карту. Лицевые швы , однако, похитили специфический для JSF пакет javax.faces.bean
для своей аннотации @FlashScoped
, но это определенно не из стандартного API JSF.
Смотри также: