Изучаем Java EE 7 - [165]

Шрифт
Интервал

>#{cc.attrs.[attributeName]}

Этот код указывает, что метод GetAttributes() будет вызван для текущего составного компонента (из табл. 10.18 вы помните, что cc — неявный объект, который указывает на текущий компонент). Внутри возвращенного объекта типа Map код будет искать значение с ключом attributeName. Так компонент использует атрибуты, которые определены в интерфейсе.

Прежде чем я объясню, как работать с этим компонентом, вспомните вопрос управления ресурсами, рассмотренный ранее в этой главе, и понятие конфигурации с помощью исключения. Компонент должен быть сохранен в файл, который располагается внутри библиотеки ресурсов. Например, файл для этого примера называется newItem.xhtml и сохраняется по адресу /resources/apress. Если вы оставите все значения по умолчанию, то для использования этого компонента вам нужно объявить библиотеку apress и указать для нее пространство имен XML (ago в следующем коде):

>

Затем вызовите компонент newItem (название страницы), передав все необходимые параметры: параметр item, который относится к сущности Item, и style, который является необязательным параметром, относящимся к стилю CSS.

>

>

Чтобы дать вам общее представление о том, как включить компонент, в листинге 10.15 показана страница newBook.xhtml, представляющая форму, которая позволяет ввести данные о книге. Она включает в себя составной компонент newItem и добавляет поля ввода для ISBN, количества страниц, а также флажок, позволяющий указать, есть ли в книге иллюстрации.


Листинг 10.15. Страница newBook.xhtml, использующая компонент newItem

>

>······xmlns: h="http://xmlns.jcp.org/jsf/html"

>······xmlns: ago="http://xmlns.jcp.org/jsf/composite/apress">

>

>··Создать новую книгу

>

>

>··

Создать новую книгу

>··


>··

>····

>····

>······

>······

>······

>······

>······

>······

>····

>····

>··

>··


>··

>

>


Примечание

Создание компонентов — непростая задача, так что разработчиков нужно вдохновлять писать собственные бизнес-компоненты, чтобы использовать их между страницами. Но некоторые компоненты настолько распространены (календарь, палитра, панель прокрутки, «хлебные крошки»…), что вы не должны развивать их дальше, нужно просто загрузить их из сторонних библиотек компонентов. Сегодня существует три основных проекта с открытым кодом, которые включают сотни уже готовых графических компонентов: PrimeFaces, RichFaces и IceFaces. Проверьте свои библиотеки компонентов, и вы можете получить необходимый компонент, не прибегая к разработке.

Резюме

В данной главе рассматривались различные способы создания веб-страниц с использованием клиентских языков, таких как HTML, XHTML или CSS, а также создание динамического содержимого с помощью серверных страниц JSF. Сегодня гонка между пользовательскими интерфейсами продолжается, распространение насыщенных приложений для Рабочего стола (RDA), насыщенных интернет-приложений (RIA), приложений для мобильных устройств (смартфонов или планшетов) и т. д. Несколько лет назад JSF вошел в эту гонку и сегодня, с момента выпуска версии 2.2, проводит свою собственную.

Архитектура JSF основана на компонентах и насыщенном API для разработки отрисовщиков, преобразователей, валидаторов и т. д. Он может отрисовать и преобразовать несколько языков, несмотря на то что предпочтительным PDL для веб-страниц является Facelets. JSF предоставляет набор стандартных виджетов (кнопки, гиперссылки, флажки и т. д.) и гибкую модель для создания ваших собственных виджетов (составные компоненты). Кроме того, сообщество разработало несколько сторонних библиотек компонентов с открытым исходным кодом.

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


Глава 11. Обработка и навигация

В главе 10 я показал вам, как создать веб-страницы с помощью JSF-компонентов. Тем не менее создавать страницы с применением графических компонентов недостаточно, эти страницы должны взаимодействовать с системой серверов, осуществлять навигацию по другим страницам, а также проверять и преобразовывать данные. Спецификация JSF очень насыщенна — компоненты-подложки позволяют вызывать бизнес-уровень и осуществлять навигацию по вашему приложению. Набор классов дает возможность преобразовывать значения компонентов в заданный тип и из него, а также проверять их соответствие бизнес-правилам. Интеграция с Bean Validation также облегчает проверку в JSF 2.2. С помощью аннотаций можно легко разрабатывать компоненты-подложки, собственные преобразователи и валидаторы.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.