Изучаем Java EE 7 - [164]
Новый подход предполагает создание страницы XHTML, которая содержит компоненты, а затем использование ее в качестве компонента на других страницах. Эта страница XHTML затем рассматривается как реальный компонент, который может поддерживать работу с валидаторами, преобразователями и слушателями. Внутри составного компонента разрешено использовать любую допустимую разметку, в том числе шаблоны. Составные компоненты обрабатываются как ресурсы и, следовательно, должны находиться в пределах стандартных каталогов resources. В табл. 10.19 перечислены все теги, участвующие в создании и определении составного компонента.
Тег | Описание |
---|---|
Описывает контракт компонента | |
Определяет реализацию компонента | |
Определяет атрибут, который может быть задан экземпляру компонента. Их может не быть вообще либо быть сразу несколько внутри раздела | |
Указывает, что этот компонент поддерживает фасет | |
Используется в разделе | |
Применяется в разделе | |
Указывает, что компонент, чей контракт определен в разделе | |
Используется в разделе | |
Применяется в разделе | |
Указывает, что компонент, чей контракт определен в разделе | |
Определяет контракт для поведений, которые могут изменить отрисованное содержимое компонента | |
Указывает, что компонент, чей контракт определен в разделе |
Рассмотрим пример, который показывает, как легко можно создать графический компонент и использовать его на других страницах. Вы, возможно, помните из предыдущих глав, что приложение CD-BookStore продает два разных типа товара: книги и компакт-диски. В главе 4 я представлял их как три различных объекта: Book и CD, наследующие от класса Item. Класс Item содержит общие атрибуты (название, цену и описание), а затем для классов Book и CD указываются специализированные свойства (isbn, publisher, nbOfPage и illustrations для Book; musicCompany, numberOfCDs, totalDuration и genre для CD). Если вы хотите, чтобы ваше веб-приложение имело возможность создавать новые книги и компакт-диски, понадобятся две разные формы. Но общие атрибуты класса Item могут располагаться на отдельной странице, которая будет выступать в качестве компонента. На рис. 10.8 показаны эти две страницы.
Рис. 10.8. Две формы, одна из которых предназначена для создания компакт-диска, а вторая — для создания книги
Создадим составной компонент с двумя полями для ввода текста (название и цена) и одной текстовой областью (для описания). Подход к написанию компонентов JSF 2.2 относительно близок к такому подходу в Java. Вы должны сначала написать интерфейс —
>
>······xmlns: h="http://xmlns.jcp.org/jsf/html"
>······xmlns: composite="http://xmlns.jcp.org/jsf/composite">
>
>··
>··
>
>
>··
>····
>····
>····
>····
>····
>····
>··
>
>
Компонент в листинге 10.14 объявляет интерфейс с двумя атрибутами: item, представляющий компонент Item (и подклассы Book и CD), и style, который является стилем CSS, используемым для отрисовки. Эти атрибуты затем используются для реализации составного компонента с помощью следующего синтаксиса:
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.