Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
У вас там одна формочка два рада в лабе. Одна формочка используется два раза. Список «Клиент» (имя, фамилия и т.д.) повторяется. А представьте к вам придут и у вас будет в 3, в 10 раз больше. Вы что? Будете менять 10 формочек? Вам нужно создать свой собственный компонент, а потом его прикрутить к тем страницам где этот список можно выводить. Вот это и есть то, что мы сейчас видим – повторное использование кода в JSF.

Что такое «компонент»? Название поля – фамилия, имя и остальные характеристики сотрудника, которые надо выводить. Но оно же состоит из двух позиций. Название и текстовое поле, где можно новое значение ввести. Что обсуждать текстовое поле? Оно текстовое поле. Это просто строчка для редактирования. А надпись? Согласитесь, что надпись в разном контексте может быть разная. Например, в одном месте будет написано «Адрес», в другом «Адрес доставки», в третьем «Адрес покупателя», в четвертом «Адрес еще кого-то». Т.е. один и тот же элемент управления сделанный вами, но в разных страницах может потребовать разных названий, а самое неприятное и разных обработчиков на события. Поэтому компонент не может на 100% сделан hardcoded, а потом его на разные страницы выкладываешь. У него должны быть параметры. И они их назвали атрибутами. И формирование своего собственного компонента для повторного использования здесь состоит из двух разделов. Первый раздел попадает в такие теги < composite: interface >. И это описание тех характеристик, которые можно будет настраивать при добавлении на страницу этого компонента. Я смогу задать много атрибутов. И это будет надпись на кнопочке «Город», на кнопочке «Value», на любой кнопочке.
И последнее самое важное – «обработчик на кнопочку». Да, будет какая-то Findкнопочка. И надпись на ней можно устанавливать какую хочешь «findButtonLabel». Мы можем здесь только задать прототип. Вот этот последний атрибут «method-signature»и говорит: «метод без параметра возвращает строку». Всё. Тогда те, кто будет подписывать уже у себя события, он будет обязан этому следовать. Вот это позволяет создать элемент управления, но со своими настройками. Если какая-то надпись не требует настройки, то на кнопке всегда будет написано «find». Ну слава Богу тогда можно часть этих атрибутов отсюда будет удалять. Это раз.
Идем далее…

Видите? < composite: implementation >. А в этом разделе вы уже непосредственно создаете пользовательский интерфейс, тот который в браузере увидит клиент. Ну а раз пользовательский интерфейс, то по сути мы можем взять оттуда copy-pastи сюда его забросить. Вот она формочка, всякие разные сообщения. Какие-то panelGrid. Внутри у нас всякие разные элементы и т.д. и т.д.
Но! Вот именно здесь и появятся элементы. Допустим у меня panelGridидет. Если вы посмотрите первую строчку в этом panelGrid, то это будет какой-то label. А здесь видите? Ссылочка на атрибут cityLabel. И там будет подставлен этот элемент и надпись у него может меняться, когда создается этот элемент на какой-то страничке. И так далее по остальным такая же настройка. И в конце кнопочка Action. Какой у нее обработчик? Какой пользователь задаст с помощью атрибута. Прототип метода там жестко задан. Вот это и позволит вам создать по сути элемент управления с настройками.


Сделали класс. Он будет в отдельном файле. И он будет лежать в своем собственном каталоге. И т.к. он отличается от всего остального у него свое пространство имен – вот оно «fc». Соответственно, если вы хотите его добавлять, то вы должны на эту страничку добавить пространство имен и вот там должна быть написана не только стандартная часть, но и в конце ваш каталог, где лежат эти композитные элементы управления. И потом вы пишете на этой же страничке ниже «fc: findComponent». «fc: findComponent» - это имя файла, т.е. это имя компонента в котором эта разметка находится. А дальше смотрите. Вот мы начинаем здесь использовать эти атрибуты, которые были созданы в разметке: usernameLabel –смотрим. В любом случае, вот надпись на кнопке «findButtonLabel», а вот будет обработчик на кнопку. Обратите внимание, когда вы добавляете компонент, то вы не пишете разметку. Вы используя атрибуты задаете те значения, которые должны появиться вот в этом компоненте. Вот его атрибуты, вот его реализация.
|
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!