Javaserver faces
Download
1 / 31

JavaServer Faces - PowerPoint PPT Presentation


  • 156 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' JavaServer Faces' - yonah


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

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

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

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

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

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

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


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

  • Какво е JSF?

    • Част от JEE

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

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

  • История на JSF

    • 2001 г. – JSR 127

    • 2004 г. – JSF 1.0 и 1.1

    • 2004 г. – JSR 252

    • 2006 г. – JSF 1.2


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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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


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

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

  • Набор от backing beans

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

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

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

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


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

  • Стъпки:

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

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

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

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

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


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

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


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

  • NetBeans

    • Visual Web Pack

  • Eclipse

    • WTP

    • MyEclipse

  • JDeveloper

  • IntelliJ IDEA


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

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


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

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

    • <h:message … >

    • required="true"

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

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

    • convertDateTime


JSF отвътре

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

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

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

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


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}" />


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

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

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

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

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


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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


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

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

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


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 клас за манипулация на състоянието и.


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

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

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

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


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

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

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

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


Javaserver faces1
JavaServer Faces

Въпроси?


ad