JSF CDI: Лучшая практика в области беседы - PullRequest
10 голосов
/ 22 ноября 2010

В настоящее время я изучаю JSF 2.0 и очень рад существованию этой функции области диалога, которая очень полезна при открытии новой вкладки или нового окна на той же странице и имеет отдельные ресурсы, не переопределяя друг друга .

Но мне интересно, как это правильно реализовать, когда начинать разговор и когда его закрывать.

В моем случае у меня есть каждый компонент CDI для каждой страницы JSF. И скажем, у меня есть меню, и когда оно щелкнет, это приведет к странице A, и из A, может привести к B, B может привести к C, C может привести к D, все эти 4 страницы связаны в одну цепь.

Доступ к свойствам бина A возможен из бинов B или C или D, доступ к свойствам B также возможен из бинов C или D и т. Д.

Теперь я в замешательстве:

  • должны ли все эти A B C D быть в объеме разговора или нет, или возможно только A? Потому что я думаю иногда с другой страницы, которая вне цепочки ABCD, как страница F, это может перейти к странице B, хотя я не знаю как поставить данных для bean-компонента B пока нет.
  • должны ли все эти A B C D быть объединены в один боб
  • где и когда начинать разговор, я думаю о конструктор, но я не думаю, что это хорошая идея, потому что я предпочитаю начинать разговор при первом доступе страница, а не боб
  • где и когда остановить разговор, чтобы не было неиспользованные ресурсы, висящие вокруг

Пожалуйста, поделитесь своими мыслями по этому поводу.

1 Ответ

11 голосов
/ 24 ноября 2010

JSF 2 предоставляет области запросов, просмотра, сеанса и приложений. CDI представляет область разговора, но, что более важно, он представляет стандарт, с помощью которого в платформу можно добавлять новые области.

Область, которую вы описываете, вероятно, лучше подходит для пользовательской области видимости, такой как область окна. Два проекта, реализующие эту область:

  1. Apache MyFaces CODI
  2. IceFaces имеет JSF (не-CDI) Реализация области окна .

Тем не менее, я бы посоветовал вам переосмыслить структуру бобов Я сам полюбил область видимости в сочетании с параметрами представления JSF 2 для распространения информации с одной страницы на другую (и из одного экземпляра области обзора на другую).

Область видимости MyFaces "View Access" выглядит как еще один аккуратный подход, в котором компонент остается в области действия, пока страницы, по которым вы просматриваете, поддерживают ссылку на эту область.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...