Где ManagedBean на шаблоне проектирования MVC [дубликат]

Интересно, что ни один из ответов на этой странице не упоминает два крайних случая, надеюсь, никто не возражает, если я их добавлю:

Случай с краем # 1: одновременный доступ к словарю

Родовые словари в .NET не являются потокобезопасными, а иногда могут бросать NullReference или даже (чаще) a KeyNotFoundException при попытке получить доступ к ключу из двух параллельных потоков. Исключение в этом случае является довольно ошибочным.

Случай с краем # 2: небезопасный код

Если код NullReferenceException задан кодом unsafe, вы можете посмотреть на переменные указателя , и проверьте их на IntPtr.Zero или что-то в этом роде. Это одно и то же («исключение нулевого указателя»), но в небезопасном коде переменные часто переводятся в типы значений / массивы и т. Д., И вы ударяете головой о стену, задаваясь вопросом, как тип значения может исключение.

(Еще одна причина для небезопасного использования небезопасного кода, если вам это нужно)

83
задан Shervin Asgari 24 February 2011 в 12:49
поделиться

3 ответа

Это зависит от точки зрения (pun intented).

В большой архитектурной картине ваш собственный JSF-код - это V:

M - Домен бизнес / Уровень обслуживания (например, EJB / JPA / DAO) V - Ваш код JSF C - FacesServlet

В изображении разработчика архитектурный V в свою очередь делится следующим образом:

M - Объект V - Facelets / JSP page C - Управляемый компонент

На маленьком клиентском изображении разработчик V в свою очередь делится следующим образом:

M - дерево компонентов JSF V - визуализированный вывод HTML C - Клиент (webbrowser)

На еще меньшем изображении JavaScript клиент V в свою очередь делится следующим образом:

M - дерево HTML DOM V - визуальная презентация C - функции прослушивания событий ( enduser и Ajax)

Таким образом, это в основном M (M (M (MVC) C) C) C;)

Обратите внимание, что некоторые стартеры и даже некоторые из них - очень простые & mdash; tutorials mingle / copy / flatten свойства объекта в управляемом компоненте, что эффективно сделало бы контроллер моделью. Излишне говорить, что это плохой дизайн (т. Е. Не чистый проект MVC).

В фрагментах кода в следующих ответах показан правильный подход MVC:

130
ответ дан Community 25 August 2018 в 02:30
поделиться

Сервлет лиц управляет жизненным циклом лиц, поэтому в этом смысле контроллер сочетается с вашим собственным кодом, который может быть вызван во время каждой фазы жизненного цикла

http: //www.java-samples .com / изображения / JSF-lifecycle.gif

3
ответ дан Don 25 August 2018 в 02:30
поделиться

M odel будет вашим ManagedBean

V iew будет jsp, XHTML (ну вы можете вместить различные виды здесь)

C ontroller будет FacesServlet

Обновить, надеюсь, что это изображение поможет больше

enter image description here [/g0]

34
ответ дан Jigar Joshi 25 August 2018 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: