Изучаем 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, количества страниц, а также флажок, позволяющий указать, есть ли в книге иллюстрации.
>
>······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. С помощью аннотаций можно легко разрабатывать компоненты-подложки, собственные преобразователи и валидаторы.

Что такое ГЕЙМДИЗАЙН? Это не код, графика или звук. Это не создание персонажей или раскрашивание игрового поля. Геймдизайн – это симулятор мечты, набор правил, благодаря которым игра оживает. Как создать игру, которую полюбят, от которой не смогут оторваться? Знаменитый геймдизайнер Тайнан Сильвестр на примере кейсов из самых популярных игр рассказывает как объединить эмоции и впечатления, игровую механику и мотивацию игроков. Познакомитесь с принципами дизайна, которыми пользуются ведущие студии мира! Создайте игровую механику, вызывающую эмоции и обеспечивающую разнообразие.

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

Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000.

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

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

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