javaserver faces

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

Upload: yonah

Post on 07-Jan-2016

96 views

Category:

Documents


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: JavaServer Faces

JavaServer FacesJavaServer Faces

Цветелин АндреевЦветелин АндреевЦветелин АндреевЦветелин АндреевDreamix LtdDreamix LtdDreamix LtdDreamix Ltd

c.andreev_AT_dreamix.euc.andreev_AT_dreamix.euc.andreev_AT_dreamix.euc.andreev_AT_dreamix.eu

Page 2: JavaServer Faces

СъдържаниеСъдържаниеСъдържаниеСъдържание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 3: JavaServer Faces

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

• Какво е Какво е JSF?JSF?

• Част от Част от JEEJEE

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

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

• История на История на JSFJSF

• 2001 2001 г. – JSR 127г. – JSR 127

• 2004 г. – 2004 г. – JSF 1.0 JSF 1.0 и 1.1и 1.1

• 2004 г. – 2004 г. – JSR 252JSR 252

• 2006 г. – 2006 г. – JSF 1.2JSF 1.2

• Какво е Какво е JSF?JSF?

• Част от Част от JEEJEE

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

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

• История на История на JSFJSF

• 2001 2001 г. – JSR 127г. – JSR 127

• 2004 г. – 2004 г. – JSF 1.0 JSF 1.0 и 1.1и 1.1

• 2004 г. – 2004 г. – JSR 252JSR 252

• 2006 г. – 2006 г. – JSF 1.2JSF 1.2

Page 4: JavaServer Faces

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

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

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

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

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

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

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

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

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

Page 5: JavaServer Faces

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

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

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

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

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

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

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

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

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

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

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

Page 6: JavaServer Faces

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

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

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

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

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

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

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

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

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

Page 7: JavaServer Faces

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

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

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

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

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

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

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

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

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

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

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

Page 8: JavaServer Faces

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

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

• Набор от backing beansНабор от backing beans

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

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

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

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

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

• Набор от backing beansНабор от backing beans

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

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

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

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

Page 9: JavaServer Faces

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

• Стъпки:Стъпки:• Мапване на FacesServlet в web.xml.Мапване на FacesServlet в web.xml.

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

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

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

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

• Стъпки:Стъпки:• Мапване на FacesServlet в web.xml.Мапване на FacesServlet в web.xml.

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

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

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

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

Page 10: JavaServer Faces

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

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

Page 11: JavaServer Faces

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

• NetBeansNetBeans

• Visual Web PackVisual Web Pack

• EclipseEclipse

• WTPWTP

• MyEclipseMyEclipse

• JDeveloperJDeveloper

• IntelliJ IDEA IntelliJ IDEA

• NetBeansNetBeans

• Visual Web PackVisual Web Pack

• EclipseEclipse

• WTPWTP

• MyEclipseMyEclipse

• JDeveloperJDeveloper

• IntelliJ IDEA IntelliJ IDEA

Page 12: JavaServer Faces

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

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

Page 13: JavaServer Faces

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

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

• <<h:message … >h:message … >

• required="true"required="true"

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

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

• convertDateTime convertDateTime

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

• <<h:message … >h:message … >

• required="true"required="true"

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

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

• convertDateTime convertDateTime

Page 14: JavaServer Faces

JSF отвътреJSF отвътреJSF отвътреJSF отвътре

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

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

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

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

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

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

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

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

Page 15: JavaServer Faces

JSF отвътреJSF отвътреJSF отвътреJSF отвътре

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

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

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

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

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

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

Page 16: JavaServer Faces

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

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

Пример: Пример:

UICommand – h:commandButton иUICommand – h:commandButton и h:commandLink h:commandLink

UIOutput – h:outputText и h:outputLabel UIOutput – h:outputText и h:outputLabel

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

Пример: Пример:

UICommand – h:commandButton иUICommand – h:commandButton и h:commandLink h:commandLink

UIOutput – h:outputText и h:outputLabel UIOutput – h:outputText и h:outputLabel

Page 17: JavaServer Faces

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

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

Пример:Пример:

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

Пример:Пример:<h:inputText binding="#{PersonBean.input}" />

Page 18: JavaServer Faces

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

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

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

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

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

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

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

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

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

Page 19: JavaServer Faces

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

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

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

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

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

Page 20: JavaServer Faces

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

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

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

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

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

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

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

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

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

Page 21: JavaServer Faces

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

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

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

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

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

Page 22: JavaServer Faces

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

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

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

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

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

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

Page 23: JavaServer Faces

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

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

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

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

Page 24: JavaServer Faces

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

• Два начинаДва начина

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

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

• Два начинаДва начина

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

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

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

Page 25: JavaServer Faces

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

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

Page 26: JavaServer Faces

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

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

• ВалидацияВалидация

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

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

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

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

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

• ВалидацияВалидация

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

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

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

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

Page 27: JavaServer Faces

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

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

Page 28: JavaServer Faces

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

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

• ВалидацияВалидация

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

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

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

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

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

• ВалидацияВалидация

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

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

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

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

Page 29: JavaServer Faces

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

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

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

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

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

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

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

Page 30: JavaServer Faces

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

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

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

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

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

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

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

Page 31: JavaServer Faces

Въпроси?Въпроси?Въпроси?Въпроси?

JavaServer FacesJavaServer FacesJavaServer FacesJavaServer Faces