Table of Contents
Мифы про JSF
Миф первый: для разработки JSF-приложений нужен WYSIWYG-редактор
Как говорят англичане, bullshit. Как для разработки Swing-приложений совсем не обязателен WYSIWYG-редактор, так же он совсем не обязателен для разработки JSF-приложений. Более того, JSF-разработка без WYSIWYG-редактора гораздо проще чем разработка с помощью традиционных Model 2 фрэймворков, таких как Struts или WebWork.
Миф второй: JSF не поддерживает MVC Model 2
Это частично так. MVC Model 2 - это упрощённая1) версия MVC (Model-View-Controller) для веб-разработки, работающая поверх сервлетов. Тогда как Model 2 завязана на протокол без состояний (HTTP), JSF поддерживает более богатую модель MVC, гораздо более близкую к разработке традиционных GUI-приложений. С одной стороны это приближение усложняет написание реализаций JSF по сравнению с другими фрэймворками, но с другой основную часть проблем уже решает за вас реализация JSF, что сильно упрощает разработку самих приложений.
На самом деле, хоть модель JSF, основанная на компонентах и управляемая событиями, - это нечто новое в мире Java, она уже существовала некоторое время в другом месте. WebObjects компании Apple и ASP.NET имеют похожую архитектуру. Tapestry - это фрэймворк веб-компонентов, который использует немного другой подход, но тоже основан на той же модели.
Миф третий: разработка JSF-приложений очень сложна
Если ты считаешь что-то невозможно сложным, это лишь означает, что ты недостаточно умён. Шутка.
Обычно этот миф разносят те, кто много читал о технологии, но не пробовал применять её на практике, поэтому этот миф легко развеять. Да, спецификация JSF непроста2) со всеми её диаграммами и схемами - поэтому у вас легко может сложиться впечатление, что сама технология тоже сложна. Запомните простую вещь: спецификация написана для тех, кто будет писать реализации, но не для разработчика. Как уже было написано выше, JSF создавался так, чтобы быть простым для разработчика приложения.
Миф четвёртый: к JSF-страницам можно обращаться только с помощью POST-запросов
Неверно. Вполне можно и с помощью GET-запросов.