Aplikacje webowe w JSF
Aplikacje webowe w Java Server Faces (JSF)
Kod szkolenia: JAVA-JSF
Szkolenie kierowane jest do programistów warstwy webowej, chcących obsługiwać żądania HTTP w Javie za pomocą wysoko-poziomowego API JSF 2, ze wsparciem AJAX.
Szkolenie przydatne jest zarówno programistom nie posiadającym jeszcze znajomości JSF, jak i tym, którzy używali starej wersji i chcą poznać zmiany jakie zaszły w JSF 2, tak aby szybciej wytarzać oprogramowanie w oparciu o adnotacje dostarczane wraz z nową specyfikacją.
Nowe elementy z JSF 2 są wyraźnie zaznaczone i porównane ze starymi, dlatego szkolenie pozwoli również uczestnikom na ewentualną pracę w starej specyfikacji JSF 1, jeśli zajdzie taka potrzeba.
Celem szkolenia jest nabycie umiejętności wytwarzania profesjonalnych aplikacji webowych w oparciu o trzywarstwowy model MVC, którego standardem API w Javie jest JSF.
Szkolenie skupia się na szybkim wytarzaniu komponentów opierając się na usprawnieniach JSF 2, które są używane w ramach ćwiczeń. Jednocześnie pokrótce przedstawiane są alternatywne starsze rozwiązania JSF 1, aby uczestnicy byli w stanie również przejąć utrzymanie starszych produktów.
Jako, że szkolenie jest mocno praktyczne, ćwiczone są niezbędne obecnie komponenty oparte na komunikacji AJAX.
4 dni, po 8 godzin. Łącznie 32 godzin(y) szkolenia.
Oczekiwane przygotowanie słuchaczy przed szkoleniem
Od uczestników wymaga się podstawowej znajomości HTML i umiejętności programowania w języku Java.
Polecane szkolenia uzupełniające
Szkolenie poprzedzające - Programowanie w Java (JAVA-PRO).
W naszej ofercie znajdują się również szkolenia uzupełniające w zakresie JEE:
JAVA-WYD,
JAVA-EJB,
JAVA-WS,
JAVA-JPA,
JAVA-JEE.
A także szkolenia na wyższych poziomach: projektowanie (JAVA-WZO) i architektura (JAVA-ARCH)
- Podstawy JSF
- Spagetti komunikacyjne
- MVC
- Model obsługi żądania JSF
- Etapy obsługi żądania
- Restore View
- Apply Request Values
- Process Validations
- Update Model values
- Invoke Application
- Render Response
- Obsługa formularzy w JSF
- Żądanie inicjujące
- Żądanie zwrotne
- Wymagania projektu JSF
- Struktura
- Biblioteki
- web.xml
- faces-config.xml
- Podstawy tworzenia aplikacji w JSF
- Proste widoki
- Prosty widok JSP
- Prosty widok XML
- Logika w JSF
- Managed Beans
- Czym jest Managed Bean
- Ograniczenia metod Managed Bean
- Metody parametryzowane (od JSF 2.0)
- Zasięgi widoczności (scopes)
- application
- session
- flash (od JSF 2.0)
- view (od JSF 2.0)
- request
- none
- Własne zasięgi
- Definiowanie Managed Beans
- Za pomocą adnotacji (od JSF 2.0)
- W XML
- EL - odwołania do Manages Beans w widokach
- Wstrzykiwanie zależnych Manages Beans
- Za pomocą adnotacji (od JSF 2.0)
- W XML
- Nawigacja między widokami
- Mapowanie bezpośrednie (od JSF 2.0)
- W widokach
- W logice
- Z parametrami
- Przekierowanie (faces-redirect)
- Bookmarkability (includeViewParams)
- Mapowanie w XML
- Bezwarunkowe
- Warunkowe (od JSF 2.0)
- Reguły wyboru
- Podstawowe komponenty widoków JSF
- Biblioteki komponentów
- Komponenty prezentacji (biblioteka h)
- Komponenty logiki (biblioteka f)
- Komponenty wejściowe
- Pola tekstowe
- h:inputText
- h:inputSecret
- h:inputHidden
- h:inputTextArea
- Pola wyboru
- Definiowanie wartości wyboru
- f:selectItem
- f:selectItems
- Pola jednokrotnego wyboru
- h:selectBooleanCheckbox
- h:selectOneRadio
- h:selectOneMenu
- h:selectOneListbox
- Pola wieokrotnego wyboru
- h:selectManyCheckbox
- h:selectManyMenu
- h:selectManyListbox
- Komponenty wyjściowe
- h:outputText
- h:outputLabel
- h:outputLink
- h:outputFormat
- h:outputScript (od JSF 2.0)
- h:outputStylesheet (od JSF 2.0)
- h:graphicImage
- Komponenty dekorujące
- h:dataTable
- h:column
- f:facet header
- f:facet footer
- h:panelGrid
- h:panelGroup
- h:form
- Komponenty wywołania logiki
- h:commandButton
- h:commandLink
- Internacjonalizacja w JSF
- f:loadBoundle
- Konfiguracja internacjonalizacji
- Inne komponenty JSF
- f:view
- f:subview
- f:metadata (od JSF 2.0)
- f:viewParam
- h:link
- h:button
- f:verbatim
- f:attribute
- f:param
- Podsumowanie komponentów nawigacji
- h:outputLink
- h:commandLink
- h:commandButton
- h:link
- h:button
- Budowa formularzy w JSF
- Formularze powiązane z logiką
- Język wyrażeń EL
- Szczegóły języka EL
- Wyrażenia natychmiastowe a odroczone
- Notacja kropkowa
- Notacja []
- Operatory
- Wywołanie funkcji
- Obiekty EL dostępu do danych
- applicationScope
- sessionScope
- viewScope (od JSF 2.0)
- requestScope
- pageScope
- flash
- param
- paramValues
- header
- headerValues
- cookie
- initParam
- Konwersja danych
- Konwersja a cykl obsługi żądania
- Konwersja standardowa automatyczna
- Konwersja standardowa nieautomatyczna
- f:convertNumber
- f:convertDateTime
- Konwersja niestandardowa
- f:converter
- Walidacja danych
- Walidacja a cykl obsługi żądania
- Natywna walidacja danych w JSF
- Standardowa
- atrybut required
- f:validateRequired (od JSF 2.0)
- f:validateLength
- f:validateLongRange
- f:validateDoubleRange
- f:validateRegex (od JSF 2.0)
- Niestandardowa
- f:validator
- Dynamiczne określenie walidacji
- Problemy walidacji JSF
- Bean Validation - prosta walidacja danych (od JSF 2.0)
- Walidacja na adnotacjach
- @Min, @Max
- @Size
- @Null, @NotNull
- @Future, @Past
- @Pattern
- Reguły w modelu danych
- Integracja z JSF (od JSF 2.0)
- Domyślna
- f:validateBean
- Dynamiczne określenie walidacji
- Komunikaty błędów
- Komunikaty globalne (h:messages)
- Komunikaty powiązane (h:mesage)
- Definiowanie komunikatów własnych
- Poprzez komponenty
- Nadpisując standardowe
- Bean Validation
- Reguły w modelu
- Wbudowane reguły walidacji
- @AssertTrue, @AssertFalse
- @Min, @Max
- @DecimalMin, @DecimalMax
- @Digits
- @Size
- @Pattern
- @Null, @NotNull
- @Past, @Future
- Cross Field Validation - walidacja względna
- Grupy ograniczeń
- Grupa domyślna
- Własne grupy
- Hierarchia grup
- Sekwencje grup @GroupSequence
- Własna grupa domyślna dla klasy
- Walidacja w API
- Różne środowiska wykonania
- Użycie w JPA
- Użycie w JSF
- Użycie w kontenerze
- Użycie poza kontenerem
- Zakresy walidacji
- Klasa
- Atrybut
- Wartość dla atrybutu
- Grupa
- Wynik błędu
- Klasa ConstraintViolation
- Komunikaty błędów
- W ograniczeniach
- Internacjonalizacja komunikatów
- Nadpisanie komunikatów domyślnych
- Komunikaty a JSF
- Walidacja struktur obiektów
- Walidacja kolekcji i tablic
- Walidacja obiektów powiązanych (@Valid)
- Grupa domyślna a struktury obiektów
- Tworzenie własnych ograniczeń
- Podstawy tworzenia adnotacji
- Własne ograniczenia
- Własne adnotacje ograniczeń
- Własny walidator (ConstraintValidator)
- Ograniczenia wielokrotne
- Lista tych samych ograniczeń
- Ograniczenia zagregowane
- Ograniczenia na ograniczeniach
- @ReportAsSingleViolation
- @OverridesAtribute
- Budowa widoków złożonych - Facelets
- Co daje Facelets
- Szablony (template)
- Znaczniki
- Komponenty złożone
- Facelets w JSF 1.x a 2.0
- Idea szablonów
- Prosta cegiełka
- ui:decorate
- ui:param
- Szablon zewnętrzny
- ui:insert
- ui:include
- Strona używająca szablonu
- ui:composition
- ui:define
- Pozostałe cechy Facelets
- ui:component
- ui:repeat
- Funkcje EL
- Tworzenie komponentów
- composite:interface
- composite:attribute
- composite:implementation
- Zdarzenia w JSF
- Model nasłuchu zdarzeń
- Zdarzenia i listenery (FacesListener)
- ActionEvent - ActionListener
- Automatyczne przepisanie wartości (f:setPropertyActionListener)
- ValueChangeEvent - ValueChangeListener
- DataModelEvent - DataModelListener
- PhaseEvent - PhaseListener
- SystemEvent - SystemEventListener (od JSF 2.0)
- Podpinanie metod nasłuchujących
- Atrybut actionListener
- Atrybut valueChangeListener
- f:event dla SystemEvent (od JSF 2.0)
- Ograniczenia metod nasłuchujących
- Podpinanie listenerów
- f:actionListener
- f:valueChangeListener
- f:setPropertyActionListener
- f:phaseListener
- DataModel.addDataModelListener
- Adnodacje listenerów zdarzeń systemowych (od JSF 2.0)
- @ListenerFor
- @ListenersFor
- Zdarzenia a cykl przetwarzania żądania
- Kolejność wykonywania zdarzeń
- Natychmiastowe wykonanie zdarzeń (immediate)
- AJAX i JSF
- Czym jest AJAX
- Natywne wsparcie (od JSF 2.0)
- Zasięg widoku (view)
- f:ajax
- API JavaScript jsf.ajax
- Biblioteka ajax4jsf
- ajax4jsf a f:ajax
- Wybrane komponenty ajax4jsf
- a4j:ajax dawniej a4j:supportv
- a4j:outputPanel
- a4j:status
- a4j:pool
- a4j:commandButton
- a4j:commandLink
- Optymalizacje komunikacji AJAX
- a4j:region
- a4j:queue
- a4j:attachQueue
- Parametry optymalizacyjne
- Instalacja ajax4jsf
- Komponenty RichFaces
- Czym się różni RichFaces od ajax4jsf
- Wybrane komponenty RichFaces
- Walidacja
- rich:graphValidator
- rich:messages
- rich:message
- Struktury danych
- rich:list
- rich:dataTable
- rich:column
- rich:columnGroup
- rich:dataScroller
- rich:tree
- Panele
- rich:panel
- rich:collapsiblePanel
- rich:popupPanel
- rich:togglePanel
- rich:togglePanelItem
- rich:tabPanel
- rich:tab
- rich:accordion
- rich:accordionItem
- Menu
- rich:panelMenu
- rich:panelMenuGroup
- rich:panelMenuItem
- rich:toolbar
- rich:toolbarGroup
- rich:dropdownMenu
- rich:menuGroup
- rich:menuItem
- rich:menuSeparator
- Różne (szybki przegląd)
- rich:autocomplete
- rich:calendar
- rich:editor
- rich:fileUpload
- rich:progressBar
- rich:pickList
- Instalacja RichFaces
- IceFaces jako konkurencja RichFaces
- API JSF
- Wstrzykiwanie zasobów do Managed Beans (od JSF 1.2)
- @Resource, @Resources
- @EJB, @EJBs
- @WebServiceRef, @WebServiceRefs
- @PersistanceContext, @PersistanceContexts
- @PersistanceUnit, @PersistanceUnit
- Metody cyklu życia Managed Beans
- @PostConstruct
- @PreDestroy
- Komponenty od strony API
- Wiązanie logiki z widokiem (BackingBeans - binding)
- Klasy komponentów
- UIColumn
- UICommand
- UIComponent
- UIComponentBase
- UIData
- UIForm
- UIGraphic
- UIInput
- UIMessage
- UIMessages
- UINamingContainer
- UIOutcomeTarget
- UIOutput
- UIPanel
- UIParameter
- UISelectBoolean
- UISelectItem
- UISelectItems
- UISelectMany
- UISelectOne
- UIViewParameter
- UIViewRoot
- Klasy komponentów HTML
- HtmlBody
- HtmlColumn
- HtmlCommandButton
- HtmlCommandLink
- HtmlDataTable
- HtmlDocument
- HtmlForm
- HtmlGraphicImage
- HtmlInputHidden
- HtmlInputSecret
- HtmlInputText
- HtmlInputTextarea
- HtmlMessage
- HtmlMessages
- HtmlOutcomeTargetButton
- HtmlOutcomeTargetLink
- HtmlOutputFormat
- HtmlOutputLabel
- HtmlOutputLink
- HtmlOutputText
- HtmlPanelGrid
- HtmlPanelGroup
- HtmlSelectBooleanCheckbox
- HtmlSelectManyCheckbox
- HtmlSelectManyListbox
- HtmlSelectManyMenu
- HtmlSelectOneListbox
- HtmlSelectOneMenu
- HtmlSelectOneRadio
- Konfiguracja JSF
- Wybrane parametry web.xml
- javax.faces.CONFIG_FILES
- javax.faces.DEFAULT_SUFFIX
- javax.faces.FACELETS_SUFFIX
- javax.faces.LIFECYCLE_ID
- javax.faces.STATE_SAVING_METHOD
- javax.faces.FACELETS_SKIP_COMMENTS
- javax.faces.PROJECT_STAGE
- javax.faces.VALIDATE_EMPTY_FIELDS
- javax.faces.validator.DISABLE _DEFAULT_BEAN_VALIDATOR
- Wyszukiwanie plików zasobów
- Najważniejsze klasy i interfejsy w JSF
- FacesContext
- FacesMessage
- ExternalContext
- Application
- ValueBinding
- MethodBinding
- Dynamiczne definiowanie elementów listy
- SelectItem
- SelectItemGroup
- Obiekty EL dostępu do API
- facesContext
- pageContext
- view
- request
- session
- application
- Tworzenie własnych komponentów JSF
- Tworzenie konwerterów
- Stworzenie (interfejs Converter)
- Rejestracja
- @FacesConverter (od JSF 2.0)
- Rejestracja w XML
- Użycie (f:converter)
- Skojarzenie konwertera z typem danych
- Własny znacznik konwertera
- Tworzenie walidatorów
- Walidacja przez metodę (atrybut validator)
- Stworzenie walidatora
- Interfejs Validator
- @FacesValidator (od JSF 2.0)
- Użycie (f:validator)
- Własny znacznik walidacji
- Tworzenie komponentów
- Logika komponentu
- UIComponent
- UIComponentBase
- Generowanie komponentu
- Bezpośrednie
- Poprzez Renderer'a
- Renderer
- RendererKit
- Rejestracja komponentu
- Własny znacznik komponentu
- UIComponentTag
- UIComponentBodyTag
- Wartości komponentów między żądaniami HTTP
- StateHolder
- Serializacja