javaserver faces
Download
Skip this Video
Download Presentation
JavaServer Faces

Loading in 2 Seconds...

play fullscreen
1 / 31

JavaServer Faces - PowerPoint PPT Presentation


  • 162 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

slide2
Съдържание
  • Технологията JavaServer Faces
    • JSF – защо и как?
    • JSF – поглед отвътре
  • Програмиране и разширяване на JSF
    • Използване на сложни компоненти
    • Създаване на собствени валидатори, конвертери и компоненти
  • Стъпка по стъпка - JSF форум
slide3
Въведение 1/2
  • Какво е JSF?
    • Част от JEE
    • Фреймуърк за уеб приложения
    • Базиран на JSP и Java Servlets
  • История на JSF
    • 2001 г. – JSR 127
    • 2004 г. – JSF 1.0 и 1.1
    • 2004 г. – JSR 252
    • 2006 г. – JSF 1.2
slide4
Въведение 2/2
  • Поддържа се от Apache Foundation, IBM, Oracle, Sun Microsystems
  • Състои се основно от две части
    • API за представяне на HTML компоненти, валидатори, обработка на събития и т.н.
    • Две таг-библиотеки за изграждане на UI
slide5
Защо JSF? (Преимущества)
  • Имплементира Model-View-Controller
    • Третира HTTP заявка като събитие за дадена компонента
    • Позволява ясно разделение на отговорностите в един екип
    • Позволява използване на средства за визуално програмиране (RAD, WYSIWYG) подобно на ASP.NET
    • Наподобява Swing програмиране
slide6
Защо JSF? (Преимущества)
  • Използва JSP и ползволява интеграция с други технологии – JSTL, Struts
  • Позволява смяна на View без промяна на Model
    • Преизползване на логика. Пример: UICommand
    • Различна визуализация за различни клиенти (Web browser, PDA )
slide7
Защо JSF? (Преимущества)
  • Предлага архитектура за
    • Управление на състоянието на компонентите и техните данни
    • Прихващане на съответните им събития
    • Валидация на данни от потребителя
  • Всичко може да се разширява и настройва
slide8
Структура на JSF приложение
  • Набор от JSP страници
  • Набор от backing beans
  • JSF конфигурационен файл (faces-config.xml)
  • Деплоймънт дескриптор (web.xml)
  • Собствени валидатори, конвертери, компоненти и обработчици на събития
  • JSF таг библиотеките
slide9
Пример за JSF приложение
  • Стъпки:
    • Мапване на FacesServlet в web.xml.
    • Създаване на страниците използвайки основните JSF тагове и тези за HTML компонентите.
    • Свързваме данните от първата страница с backing bean.
    • Дефинираме навигацията между страниците във faces-config.xml.
    • Построяваме backing beans и ги декларираме във faces-config.xml.
slide11
Среди за разработка
  • NetBeans
    • Visual Web Pack
  • Eclipse
    • WTP
    • MyEclipse
  • JDeveloper
  • IntelliJ IDEA
slide12
Среди за разработка

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

jsf hello
JSF Hello - продължение
  • Добавяне на валидация и съобщения за грешки
    • <h:message … >
    • required="true"
    • <f:validateLength minimum="3"/>
  • Използване на стандартните конвертери за данни
    • convertDateTime
slide14
JSF отвътре
  • JSF компонентен модел
    • Набор от класове за манипулиране и определяне на състоянието на HTML компонентите
    • Модел за рендериране на компонентите
    • Събитиен модел за прихващане на събития за специфични компоненти
slide15
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}" />

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

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

slide20
JSF отвътре - Събитиен модел
  • Състои се от две части – събития (events) и обработчици (listeners)
  • Event обектът идентифицира компонентата, от която е възникнал и носи информация за конкретното събитие.
  • За да бъде уведомено за конкретно събитие, приложението трябва да предостави Listener клас
  • Предоставя action, value-change и data-model event
slide21
JSF отвътре - Събитиен модел
  • Обработвици на събития се ‘закачат’ по два начина:
    • Имплементиране на ActionListener или ValueChangeListener и добавяне на вътрешен таг за съответната компонента (actionListener или valueChangeListener)
slide22
JSF отвътре - Събитиен модел
  • Обработвици на събития се ‘закачат’ по два начина:
    • Имплементиране на метод на backing bean и достъпване на този метод чрез атрибута actionListener

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

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

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

slide24
JSF отвътре -навигационен модел
  • Два начина
    • Статичен – както в демото
    • Динамичен – с action методи

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

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

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

jsf backing bean1
JSF отвътре - backing bean модел
  • Динамична навигация
  • Валидация
  • Конвертиране
  • Обработване на събития,
  • Свързване на текуща стойност на HTML компонента
  • Свързване на HTML компонента към UIComponent клас за манипулация на състоянието и.
slide29
JSF жизнен цикъл
  • Restore View Phase за създаване на дърво от компоненти
  • Apply Request Values Phase за извличане на новите стойности на компонентите.
  • Process Validations Phase за валидиране на извлечените стойности на компонентите.
slide30
JSF жизнен цикъл
  • Update Model Values Phase за свързване на компонентите от дървото с техните валидни стойности
  • Invoke Application Phase за извикване на всички обработчици за възникналите събития, навигационните методи и т.н.
  • Render Response Phase за рендериране на JSP страницата
javaserver faces1
JavaServer Faces

Въпроси?

ad