1 / 31

JavaServer Faces

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

yonah
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JavaServer Faces Цветелин Андреев Dreamix Ltd c.andreev_AT_dreamix.eu

  2. Съдържание • Технологията JavaServer Faces • JSF – защо и как? • JSF – поглед отвътре • Програмиране и разширяване на JSF • Използване на сложни компоненти • Създаване на собствени валидатори, конвертери и компоненти • Стъпка по стъпка - JSF форум

  3. Въведение 1/2 • Какво е JSF? • Част от JEE • Фреймуърк за уеб приложения • Базиран на JSP и Java Servlets • История на JSF • 2001 г. – JSR 127 • 2004 г. – JSF 1.0 и 1.1 • 2004 г. – JSR 252 • 2006 г. – JSF 1.2

  4. Въведение 2/2 • Поддържа се от Apache Foundation, IBM, Oracle, Sun Microsystems • Състои се основно от две части • API за представяне на HTML компоненти, валидатори, обработка на събития и т.н. • Две таг-библиотеки за изграждане на UI

  5. Защо JSF? (Преимущества) • Имплементира Model-View-Controller • Третира HTTP заявка като събитие за дадена компонента • Позволява ясно разделение на отговорностите в един екип • Позволява използване на средства за визуално програмиране (RAD, WYSIWYG) подобно на ASP.NET • Наподобява Swing програмиране

  6. Защо JSF? (Преимущества) • Използва JSP и ползволява интеграция с други технологии – JSTL, Struts • Позволява смяна на View без промяна на Model • Преизползване на логика. Пример: UICommand • Различна визуализация за различни клиенти (Web browser, PDA )

  7. Защо JSF? (Преимущества) • Предлага архитектура за • Управление на състоянието на компонентите и техните данни • Прихващане на съответните им събития • Валидация на данни от потребителя • Всичко може да се разширява и настройва

  8. Структура на JSF приложение • Набор от JSP страници • Набор от backing beans • JSF конфигурационен файл (faces-config.xml) • Деплоймънт дескриптор (web.xml) • Собствени валидатори, конвертери, компоненти и обработчици на събития • JSF таг библиотеките

  9. Пример за JSF приложение • Стъпки: • Мапване на FacesServlet в web.xml. • Създаване на страниците използвайки основните JSF тагове и тези за HTML компонентите. • Свързваме данните от първата страница с backing bean. • Дефинираме навигацията между страниците във faces-config.xml. • Построяваме backing beans и ги декларираме във faces-config.xml.

  10. Пример за JSF приложение Демонстрация

  11. Среди за разработка • NetBeans • Visual Web Pack • Eclipse • WTP • MyEclipse • JDeveloper • IntelliJ IDEA

  12. Среди за разработка Демонстрация с JDeveloper

  13. JSF Hello - продължение • Добавяне на валидация и съобщения за грешки • <h:message … > • required="true" • <f:validateLength minimum="3"/> • Използване на стандартните конвертери за данни • convertDateTime

  14. JSF отвътре • JSF компонентен модел • Набор от класове за манипулиране и определяне на състоянието на HTML компонентите • Модел за рендериране на компонентите • Събитиен модел за прихващане на събития за специфични компоненти

  15. JSF отвътре • JSF компонентен модел • Конвертен модел за преобразуване на типове данни от HTML компонентата към Java кода и обратно • Валидационнен модел за валидиране на съответните компоненти

  16. JSF отвътре - UIComponent класове • Всяка HTML компонента има съответния клас, наследяващ UIComponentBase. Пример: UICommand – h:commandButton иh:commandLink UIOutput – h:outputText и h:outputLabel

  17. JSF отвътре - UIComponent класове • Всяка HTML компонента може да бъде свързана с обект от съответния и тип посредством атрибута binding. Пример: <h:inputText binding="#{PersonBean.input}" />

  18. JSF отвътре – реднер модел • Модел за рендериране на компонентите • Всеки таг се свързва с Renderer определящ изгледа • Render kit включва набор от Renderer класове за всяка компонента • JSF позволява смяна на целия Render Kit

  19. JSF отвътре - Конвертен модел • Конвертния модел на JSF предоставя лесен начин за постигане на съответствие между данните в модела и визулания изглед на данните Пример: UISelectBoolean представлява checkbox и JSF позволява тази HTML компонента да бъде свързана с данни от тип Boolean

  20. JSF отвътре - Събитиен модел • Състои се от две части – събития (events) и обработчици (listeners) • Event обектът идентифицира компонентата, от която е възникнал и носи информация за конкретното събитие. • За да бъде уведомено за конкретно събитие, приложението трябва да предостави Listener клас • Предоставя action, value-change и data-model event

  21. JSF отвътре - Събитиен модел • Обработвици на събития се ‘закачат’ по два начина: • Имплементиране на ActionListener или ValueChangeListener и добавяне на вътрешен таг за съответната компонента (actionListener или valueChangeListener)

  22. JSF отвътре - Събитиен модел • Обработвици на събития се ‘закачат’ по два начина: • Имплементиране на метод на backing bean и достъпване на този метод чрез атрибута actionListener <h:commandLink ... actionListener="#{someBean.someMethod}">

  23. JSF отвътре - Валидационен модел • Два начина за извършване на собствена валидация – чрез имплементиране на класа Validator и чрез използване на атрибута validator за референсване на метод на backing bean. <h:inputText ... validator="#{someBean.validateSometing}>

  24. JSF отвътре -навигационен модел • Два начина • Статичен – както в демото • Динамичен – с action методи <h:commandLink action="#{SomeBean.navigate}" value="Submit"/>

  25. Навигация с action метод Демонстрация

  26. JSF отвътре - backing bean модел • Динамична навигация • Валидация • Конвертиране • Обработване на събития, • Свързване на текуща стойност на HTML компонента • Свързване на HTML компонента към UIComponent клас за манипулация на състоянието и.

  27. Binding на компонента Демонстрация

  28. JSF отвътре - backing bean модел • Динамична навигация • Валидация • Конвертиране • Обработване на събития, • Свързване на текуща стойност на HTML компонента • Свързване на HTML компонента към UIComponent клас за манипулация на състоянието и.

  29. JSF жизнен цикъл • Restore View Phase за създаване на дърво от компоненти • Apply Request Values Phase за извличане на новите стойности на компонентите. • Process Validations Phase за валидиране на извлечените стойности на компонентите.

  30. JSF жизнен цикъл • Update Model Values Phase за свързване на компонентите от дървото с техните валидни стойности • Invoke Application Phase за извикване на всички обработчици за възникналите събития, навигационните методи и т.н. • Render Response Phase за рендериране на JSP страницата

  31. JavaServer Faces Въпроси?

More Related