javacode banner

Статьи о фреймворке Java Server Faces или JSF

Java Server Faces
Фреймворк для веб-приложений, написанный на Java. Он служит для того, чтобы облегчать разработку пользовательских интерфейсов для Java EE приложений. В отличие от прочих MVC фреймворков, которые управляются запросами, подход JSF основывается на использовании компонентов. Состояние компонентов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется. Для отображения данных обычно используется JSP, Facelets, но JSF можно приспособить и под другие технологии, например XUL. Созданная быть гибкой, технология JavaServer Faces усиливает существующие, стандартные концепции пользовательского интерфейса (UI) и концепции Web-уровня без привязки разработчика к конкретному языку разметки, протоколу или устройству.
К сожланеию, возможности управляемых бинов JSF довольно ограничены.Но существует более гибкая модель для бинов, которые управляются с помощью сервера приложений. Эт бины CDI — Context and Dependency Injection, которые связаны с контекстом, например такими как: контекст текущего запроса, сеанс браузера, жизненный цикл определяемый пользователем. Технология CDI определяет механизмы для вставки бинов, перехвата и дополнения вызовов методов, а также активизации событий и наблюдения за ними.
подробнее...
Для удобства программиста web-приложений контейнер JSF предоставляет отдельные области действия, каждая из которых управляет отдельной таблицей привязок ключ – значение. В этих областях действия обычно хранятся бины и другие объекты, которые должны быть доступны в различных компонентах web-приложения. При определении бина необходимо определить его область действия. Три области действия являются общими для управляемых бинов JSF и CDI: область действия сеанса: SessionScoped, область действия запроса: RequestScoped, область действия приложения: ApplicationScoped
подробнее...
Технология Facelets был первоначально разработана как альтернатива обработчику представлений на основе JSP, применявшемуся в ранних версихя JSF. В версии JSF 2.0 Технология Facelets заменила JSP в качестве применявшейся по умолчанию в JSF технологии представления. Платформа Facelets не только является лучшим обработчиком представлений, но и поддерживает целый ряд тегов, предназначенных для реализации шаблонов и других целей.
подробнее...
Приложения, развернутые на сервере GlassFish или любом другом JavaEE-совместимом сервере приложений, часто должны предусматривать возможность отправки электронных писем. Благодаря API javaMail, являющемуся частью спецификации JavaEE, отправлять электронные письма из приложений JavaEE довольно просто. Чтобы реализовать возможность отправки электронных писем из приложения JavaEE, мы должны иметь доступ к почтовому серверу. Обычно это реализуется за счет использования Простого Протокола Передачи Почты — Simple Mail Transfer Protocol. Кратко — SMTP.
подробнее...
Платформа JSF обеспечивает взаимодействие с клиентскими устройствами и предоставляет инструменты для связывания уровней визуального представления, прикладной логики и бизнес-логики web-приложения. Однако область действия JSF охватывает только уровень представления. Поддержка хранения данных в базе данных, web-службы и другие серверные соединения выходят за пределы действия области JSF.
подробнее...
В спецификации JSF определено шесть этапов: Восстановление представления, Применение значений запроса, Проверка правильности процесса, Обновление значений модели, Вызов приложения, Подготовка ответа к отображению
подробнее...
Центральной проблемой в дизайне web-приложений является разделение уровня представления и уровня бизнес-логики. В технологии JSF такое разделение достигается с помощью бинов (beans). JSF-страницы ссылаются на свойства бинов, а логика программы закладывается в код реализации этих бинов. Поскольку бины играют такую фундаментальную роль в JSF-программировании, есть смысл рассмотреть их более подробно, чтобы не путать с Enterprise JavaBeans.
подробнее...
Задача отображения или сокрытия частей страницы в зависимости от некоторого условия возникает очень часто. В качестве примера можно указать, что если пользователь не вошел в систему, то должны быть показаны поля ввода для имени пользователя и пароля. Но если пользователь уже зарегистрирован в системе, то необходимо отображать имя пользователя и кнопку выхода из системы.
подробнее...
Предусмотрена возможность тестировать управляемые бины в изоляции от остального приложения, вызывая их методы, которые в обычных условиях вызываются реализацией JSF. Например, в качестве единичного теста можно вызывать методы setName и setPassword, чтобы смоделировать декодирование значений полей. Затем следует вызвать метод действия входа в систему login и проверить его возвращаемое значение.
подробнее...
Scala это широко применяемый язык программирования для виртуальной машины Java. Как и Java, он предусматривает строгий контроль типов и является объектно-ориентированным, но поддерживает также функциональное программирование. Язык Scala оказался привлекательным для многих программистов на Java, поскольку не требует задавать столь значительный объем кода для общих конструкций, таких как свойства.
подробнее...
Для осуществления большинства вариантов использования технологии AJAX, как правило, достаточно ввести ряд строк кода XML в файл XHTML, а также, возможно, несколько строк кода Java в управляемом бине, включая проверку полей ввода и отображение индикаторов выполнения. Вызов AJAX необходимо связать с каким-либо событием.
подробнее...
Авторы страниц закрепляют правила поведения, такие как проверка правильности, за компонентами JSF с помощью тегов из основной библиотеки JSF. Поддержка AJAX JSF вполне позволяет справиться с этой задачей. Чтобы закрепить правило поведения AJAX за компонентом, можно добавить тег f:ajax в текст компонента.
подробнее...
В классических web-приложениях широко используются табличные данные. Поэтому стоит поближе познакомиться с тегом h:dataTable. Этот компонент с широкими возможностями, хотя и небезграничными, который позволяет манипулировать табличными данными.
подробнее...