Как хранить бин в разговоре

Есть ли способ сохранить бин в контексте разговора? Т.е. для каждого нового разговора создается новый отдельный компонент, принадлежащий ему.

1 ответ

Решение

Самый простой способ сделать то, что вы хотите, это объявить управляемый компонент ConversationScoped или EJB, где JSF2 управляет областью действия.

Здесь есть несколько хороших объяснений:

... любой из которых сделает лучшую работу, чем я. Очень короткая версия состоит в том, что вы аннотируете бин - который может быть простым POJO, который следует соглашениям бина - с помощью @ConversationScoped аннотаций. Ты тогда @Inject Conversation объект, который вы можете использовать для begin() а также end() разговоры. Введите это @ConversationScoped боб в другие вещи. Conversation.begin а также Conversation.end методы контролируют его жизненный цикл.

Здесь достаточно много кода для публикации, но приведенные выше ссылки должны помочь.

Альтернатива @ConversationScoped POJO управляемые бобы могут быть @Stateful @ConversationScoped EJBs. Они могут быть очень полезны, когда вам нужны службы EJB в разговоре.

Чтобы ознакомиться с некоторыми концептуальными основами и подробностями, прочтите справочник CDI/Weld по областям применения, а также остальную часть руководства по CDI/Weld. Это действительно хорошо написано и действительно хорошо.

Другие вопросы по тегам