Javaserver faces
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

JavaServer Faces PowerPoint PPT Presentation


  • 125 Views
  • Uploaded on
  • Presentation posted in: General

JavaServer Faces. Цветелин Андреев. Dreamix Ltd. c.andreev_AT_dreamix.eu. Съдържание. Технологията JavaServer Faces JSF – защо и как ? JSF – поглед отвътре Програмиране и разширяване на JSF Използване на сложни компоненти Създаване на собствени валидатори, конвертери и компоненти

Download Presentation

JavaServer Faces

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Javaserver faces

JavaServer Faces

Цветелин Андреев

Dreamix Ltd

c.andreev_AT_dreamix.eu


Javaserver faces

Съдържание

  • Технологията JavaServer Faces

    • JSF – защо и как?

    • JSF – поглед отвътре

  • Програмиране и разширяване на JSF

    • Използване на сложни компоненти

    • Създаване на собствени валидатори, конвертери и компоненти

  • Стъпка по стъпка - JSF форум


Javaserver faces

Въведение 1/2

  • Какво е JSF?

    • Част от JEE

    • Фреймуърк за уеб приложения

    • Базиран на JSP и Java Servlets

  • История на JSF

    • 2001 г. – JSR 127

    • 2004 г. – JSF 1.0 и 1.1

    • 2004 г. – JSR 252

    • 2006 г. – JSF 1.2


Javaserver faces

Въведение 2/2

  • Поддържа се от Apache Foundation, IBM, Oracle, Sun Microsystems

  • Състои се основно от две части

    • API за представяне на HTML компоненти, валидатори, обработка на събития и т.н.

    • Две таг-библиотеки за изграждане на UI


Javaserver faces

Защо JSF? (Преимущества)

  • Имплементира Model-View-Controller

    • Третира HTTP заявка като събитие за дадена компонента

    • Позволява ясно разделение на отговорностите в един екип

    • Позволява използване на средства за визуално програмиране (RAD, WYSIWYG) подобно на ASP.NET

    • Наподобява Swing програмиране


Javaserver faces

Защо JSF? (Преимущества)

  • Използва JSP и ползволява интеграция с други технологии – JSTL, Struts

  • Позволява смяна на View без промяна на Model

    • Преизползване на логика. Пример: UICommand

    • Различна визуализация за различни клиенти (Web browser, PDA )


Javaserver faces

Защо JSF? (Преимущества)

  • Предлага архитектура за

    • Управление на състоянието на компонентите и техните данни

    • Прихващане на съответните им събития

    • Валидация на данни от потребителя

  • Всичко може да се разширява и настройва


Javaserver faces

Структура на JSF приложение

  • Набор от JSP страници

  • Набор от backing beans

  • JSF конфигурационен файл (faces-config.xml)

  • Деплоймънт дескриптор (web.xml)

  • Собствени валидатори, конвертери, компоненти и обработчици на събития

  • JSF таг библиотеките


Javaserver faces

Пример за JSF приложение

  • Стъпки:

    • Мапване на FacesServlet в web.xml.

    • Създаване на страниците използвайки основните JSF тагове и тези за HTML компонентите.

    • Свързваме данните от първата страница с backing bean.

    • Дефинираме навигацията между страниците във faces-config.xml.

    • Построяваме backing beans и ги декларираме във faces-config.xml.


Javaserver faces

Пример за JSF приложение

Демонстрация


Javaserver faces

Среди за разработка

  • NetBeans

    • Visual Web Pack

  • Eclipse

    • WTP

    • MyEclipse

  • JDeveloper

  • IntelliJ IDEA


Javaserver faces

Среди за разработка

Демонстрация с JDeveloper


Jsf hello

JSF Hello - продължение

  • Добавяне на валидация и съобщения за грешки

    • <h:message … >

    • required="true"

    • <f:validateLength minimum="3"/>

  • Използване на стандартните конвертери за данни

    • convertDateTime


Javaserver faces

JSF отвътре

  • JSF компонентен модел

    • Набор от класове за манипулиране и определяне на състоянието на HTML компонентите

    • Модел за рендериране на компонентите

    • Събитиен модел за прихващане на събития за специфични компоненти


Javaserver faces

JSF отвътре

  • JSF компонентен модел

    • Конвертен модел за преобразуване на типове данни от HTML компонентата към Java кода и обратно

    • Валидационнен модел за валидиране на съответните компоненти


Jsf uicomponent

JSF отвътре - UIComponent класове

  • Всяка HTML компонента има съответния клас, наследяващ UIComponentBase.

    Пример:

    UICommand – h:commandButton иh:commandLink

    UIOutput – h:outputText и h:outputLabel


Jsf uicomponent1

JSF отвътре - UIComponent класове

  • Всяка HTML компонента може да бъде свързана с обект от съответния и тип посредством атрибута binding.

    Пример:

<h:inputText binding="#{PersonBean.input}" />


Javaserver faces

JSF отвътре – реднер модел

  • Модел за рендериране на компонентите

    • Всеки таг се свързва с Renderer определящ изгледа

    • Render kit включва набор от Renderer класове за всяка компонента

    • JSF позволява смяна на целия Render Kit


Javaserver faces

JSF отвътре - Конвертен модел

  • Конвертния модел на JSF предоставя лесен начин за постигане на съответствие между данните в модела и визулания изглед на данните

    Пример: UISelectBoolean представлява checkbox и JSF позволява тази HTML компонента да бъде свързана с данни от тип Boolean


Javaserver faces

JSF отвътре - Събитиен модел

  • Състои се от две части – събития (events) и обработчици (listeners)

  • Event обектът идентифицира компонентата, от която е възникнал и носи информация за конкретното събитие.

  • За да бъде уведомено за конкретно събитие, приложението трябва да предостави Listener клас

  • Предоставя action, value-change и data-model event


Javaserver faces

JSF отвътре - Събитиен модел

  • Обработвици на събития се ‘закачат’ по два начина:

    • Имплементиране на ActionListener или ValueChangeListener и добавяне на вътрешен таг за съответната компонента (actionListener или valueChangeListener)


Javaserver faces

JSF отвътре - Събитиен модел

  • Обработвици на събития се ‘закачат’ по два начина:

    • Имплементиране на метод на backing bean и достъпване на този метод чрез атрибута actionListener

<h:commandLink ... actionListener="#{someBean.someMethod}">


Javaserver faces

JSF отвътре - Валидационен модел

  • Два начина за извършване на собствена валидация – чрез имплементиране на класа Validator и чрез използване на атрибута validator за референсване на метод на backing bean.

<h:inputText ... validator="#{someBean.validateSometing}>


Javaserver faces

JSF отвътре -навигационен модел

  • Два начина

    • Статичен – както в демото

    • Динамичен – с action методи

<h:commandLink action="#{SomeBean.navigate}" value="Submit"/>


Action

Навигация с action метод

Демонстрация


Jsf backing bean

JSF отвътре - backing bean модел

  • Динамична навигация

  • Валидация

  • Конвертиране

  • Обработване на събития,

  • Свързване на текуща стойност на HTML компонента

  • Свързване на HTML компонента към UIComponent клас за манипулация на състоянието и.


Binding

Binding на компонента

Демонстрация


Jsf backing bean1

JSF отвътре - backing bean модел

  • Динамична навигация

  • Валидация

  • Конвертиране

  • Обработване на събития,

  • Свързване на текуща стойност на HTML компонента

  • Свързване на HTML компонента към UIComponent клас за манипулация на състоянието и.


Javaserver faces

JSF жизнен цикъл

  • Restore View Phase за създаване на дърво от компоненти

  • Apply Request Values Phase за извличане на новите стойности на компонентите.

  • Process Validations Phase за валидиране на извлечените стойности на компонентите.


Javaserver faces

JSF жизнен цикъл

  • Update Model Values Phase за свързване на компонентите от дървото с техните валидни стойности

  • Invoke Application Phase за извикване на всички обработчици за възникналите събития, навигационните методи и т.н.

  • Render Response Phase за рендериране на JSP страницата


Javaserver faces1

JavaServer Faces

Въпроси?


  • Login