Как использовать область просмотра в случае CDI в JSF 2.0

Я создал проект JSF 2.0 в Netbeans 6.9. Я начинаю использовать CDI. После создания проекта, когда я попытался добавить область видимости, я заметил, что в ней нет области видимости. Я хочу знать, что область беседы и область представления относятся к одним и тем же вещам? Могу ли я использовать область диалога вместо области просмотра. Если нет, то как я могу использовать область просмотра с CDI. Я также узнал, что шов - это решение, но как я могу использовать шов с netbeans. Есть ли плагин netbeans для шва? шов-3

Спасибо


person Basit    schedule 06.03.2012    source источник


Ответы (2)


Для CDI нет области просмотра. Объем разговора не тот. Бин с областью представления существует до тех пор, пока вы работаете с одним и тем же представлением, и выдерживает частичные или полные перезагрузки страницы.

Если вы хотите использовать область диалога CDI, ваше приложение должно установить начало и конец диалога.

Исходя из моего опыта, вы можете использовать области CDI вместе с областью представления JSF (например, использовать области CDI для сеансовых и прикладных компонентов и область представления JSF там, где вам это нужно).

ОБНОВЛЕНИЕ: Однако вы не можете внедрить bean-компонент managad в bean-компонент CDI. Наоборот работает. И это более распространенный случай (инъекция из более широкой области в более узкую).

person Matt Handy    schedule 06.03.2012
comment
Вы хотите сказать, что я использую @managedBean вместо @named, если хочу просмотреть область видимости. А в @managedBean я могу использовать области CDI. Как например @ManagedBean(name = "businessAddUpdate")->@ViewScoped ->@conversationScope-> public class..... . -› означает следующую строку Так ли это? - person Basit; 06.03.2012
comment
Не смешивайте оба в аннотациях одного и того же класса. Либо одно, либо другое. Также будьте осторожны, чтобы импортировать правильные классы. - person Matt Handy; 06.03.2012
comment
Хм, теперь я понял. Вы хотите сказать, что если мне нужна область просмотра, я использую @ManagedBean(JSf), но если мне нужна область запроса, сеанса или диалога, я использую @Named(CDI). Потому что bean может быть только в одной области одновременно. Это? - person Basit; 06.03.2012
comment
Apache MyFaces CODI предоставляет адаптер CDI для ViewScope. - person Dar Whi; 11.07.2012

просто просто поместите модуль лиц шва 3 в свой путь к классам или используйте аннотацию @ViewAccessScpoed CODI myfaces.

person Mehdi    schedule 28.07.2012
comment
CODI имеет лучший адаптер @ViewScoped, который также обрабатывает крайние случаи. Насколько я знаю, он также используется в DeltaSpike. - person Dar Whi; 29.10.2012
comment
@Dar, да, вы правы, и модуль jsf для DeltaSpike находится в стадии активной разработки, и это будет отличный модуль, потому что разработчики CODI и швов делают это вместе;) - person Mehdi; 29.10.2012