2013-11-15 4 views
0

В моем проекте JSF у меня есть мастер с несколькими страницами. Для этого мастера я использую компонент CDI @ConversationScoped. Разговор работает хорошо. Когда пользователь приходит на первую страницу мастера, начинается новый разговор. Когда пользователь нажимает кнопку отправки на любой странице, разговор заканчивается. Но у меня есть несколько вопросов.
CDI Разговор без окончания

  1. Что происходит, если в середине мастера, пользователь ввел URL в адресной строке и переходите на другую страницу, не нажав кнопку отправки, я все еще есть способ закончить разговор?
  2. Должен ли я беспокоиться об этой ситуации или может накапливать такие незавершенные разговоры, становится накладными для моего приложения?

ответ

1

Большинство приложений заканчивается какой-то системой, которая отслеживает, где находится пользователь. Этому должно помочь @FlowScoped в JSF 2.2. Если вы можете использовать это вместо этого, вам нужно все управлять. Это должно быть очень легко найти примеры.

Если вы не можете использовать FlowScoped и хотите остаться на @ConversationScoped, вы должны реализовать свою собственную систему для отслеживания, где находится пользователь. Когда пользователь больше не находится в вашем потоке, вы завершаете разговор.

@Inject Conversation conversation; 

// conversation.end(); 

Вот полезная часть для реализации этого: How to cleanly end a CDI @ConversationScoped

Однако я хотел бы пойти на http://deltaspike.apache.org/core.html и использование: Для того, чтобы получить разговор.

MyBean myBean = BeanProvider.getContextualReference(MyBean.class, false);

Лично я хотел бы сделать пристройку к безопасной навигации типа в модуле Deltaspikes JSF, чтобы достичь того же, если я не мог использовать FlowScoped.

Удача

+0

IMO FlowScoped разработан для большинства случаев использования, а области CODI лучше. Надеюсь, у DeltaSpike тоже будет их. –

+0

@DarWhi Я мог бы согласиться, что я должен использовать его немного более первым. Deltaspike будет иметь их, он приходит в переработанную версию, которая до сих пор останавливала импорт из-за временных ограничений для ключевых коммиттеров. –

+0

Ссылка SO, которую вы предоставили, кажется интересной. Благодарю. – prageeth

Смежные вопросы