Создание пользовательских компонентов в JSF. — КиберПедия 

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Создание пользовательских компонентов в JSF.

2022-10-10 40
Создание пользовательских компонентов в JSF. 0.00 из 5.00 0 оценок
Заказать работу

У вас там одна формочка два рада в лабе. Одна формочка используется два раза. Список «Клиент» (имя, фамилия и т.д.) повторяется. А представьте к вам придут и у вас будет в 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», а вот будет обработчик на кнопку. Обратите внимание, когда вы добавляете компонент, то вы не пишете разметку. Вы используя атрибуты задаете те значения, которые должны появиться вот в этом компоненте. Вот его атрибуты, вот его реализация.


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.