Introduktion til JSF Livscyklus
1. Server-side:
Den kode, du skriver i et JavaServer Faces (JSF) -program, kører på serveren, men komponenter kan også omfatte JavaScript-kode, der kører på klienten. Du kan kontrastere dette med klientsidenrammer som Angular, hvor du skriver kode i JavaScript eller Typescript, der kører på klientsiden i webbrowseren.
Det faktum, at det er en server-side-ramme, betyder ikke, at du ikke kan bruge klientsiden-koden i JSF-applikationen. Faktisk kan JSF-komponenter indeholde JavaScript og JSF-understøttelse af AJAX til kommunikation, teamets klientside og serversiden kode.
2. Komponentbaseret:
JavaServer Faces-webapplikationer er bygget ved hjælp af genanvendelige, selvstændige komponenter som byggesten, hvilket gør bygning af webapps hurtigere og lettere.
Det mest interessante aspekt af JavaServer Faces, der adskiller det fra handlingsbaserede webapplikationsrammer, såsom Spring Web MVC (Model-View-Controller), Struts eller almindelige Servlets på JavaServer-sider er, at det er komponentbaseret. Dette betyder, at i JSF er byggestenene til din applikation genanvendelige og selvstændige komponenter.
En komponent kan være en hvilken som helst del af en webapplikation. Det kan være så simpelt som en standard HTML-formkontrol, såsom et tekstindtastningsfelt eller en knap eller så kompleks en tabel med sortering og paginationstøtte.
For eksempel:
En kalender eller et diagram eller en hvilken som helst anden del af en webapplikation, som du kan tænke på rammen, administrerer komponenterne på en side og tager sig af en masse ting, såsom at tage brugerinput fra formularfelter, validere og konvertere data og gemme dem til modelobjekter og påberåbe handlinger.
JSF leveres med et antal standardkomponenter, og der er også biblioteker tilgængelige med mange klar til brug komponenter.
3. Web UI-rammer
JavaServer Faces er fokuseret på brugergrænsefladedelen af webapplikationer - du definerer sider i Facilets visningsdefinitionssprog.
Det standardvisningsdefinitionssprog, der bruges i JSF, kaldes Facelets.
Forskellige regelmæssige faser af JSF-livscyklus
Der er seks forskellige regelmæssige faser i JSF Livscyklus. Ovenstående diagram viser den typiske rækkefølge, hvor de seks faser udføres.
1. Gendan visningsfase
Denne fase begynder hver gang en forbruger anmoder om en JSF-side ved blot at klikke på et link, en knap og så videre. I denne sidevisningsgenerering udføres binding af komponenter til begivenhedshåndterere og validatorer såvel som visningen bevares i FacesContext-objektet.
2. Anvend anmodningsværdi
Målet med denne fase er for hver komponent at hente den aktuelle tilstand
3. Process Validations Phase
I denne fase er lokale værdier, der er gemt for at få komponenten i træet, sammenlignet med de valideringsregler, der er autoriseret til at få komponenterne.
4. Opdater modelværdifase
Efter at have verificeret, at data er gyldige i den sidste fase, kunne lokale værdier af elementer startes relateret til serverbaserede objektegenskaber, f.eks. Sikkerhedskopiering af bønner.
5. Påkald ansøgningsfase
Forud for denne fase var komponentværdierne blevet transformeret, valideret såvel som på bønneobjekter, så du kan bruge disse til at udføre applikationens forretningslogik.
6. Render Response Phase
Denne fase henter en ny visning om nødvendigt ved hjælp af værdier fra serversiden bønner, derefter udsender vi visningen ved hjælp af de værdier, der er i træet og derefter for bønner, der ikke er på anmodningen, med andre ord om sessionens omfang eller applikationsomfang gem dem derefter den aktuelle tilstand.
Forståelse af ansigter Strømme med demo-anvendelse i det virkelige liv
Nedenfor er demo-applikationen af ansigtsstrømme med et eksempel:
Checkout-processen
- Indtast forsendelsesoplysninger
- Navn og adresse
- Indtast betalingsoplysninger
- Navn, kreditkorttype og -nummer
- Gennemgå ordren
- Bekræft eller annullér ordren
- Betaling lykkedes eller mislykkedes
Se Checkout Flow med flow noder i nedenstående diagram.
En strømning består af et antal noder. Hver knude trædes ind i strømmen, der udfører en eller anden funktion, og den specificerer, hvilken knude der skal kaldes næste. I definitionen af en flow definerer du noder og regler for navigering mellem dem. I dette diagram ser du noder for kassestrømmen.
Det starter med forsendelse, derefter betaling og gennemgang, så udføres knudepunktet, hvor betalingen foretages, og ordren er opfyldt, og til sidst kontrolleres resultatsucces eller -fejl, og derefter er processen færdig.
Typer af strømningsnoder i JSF-livscyklus
Der er fem forskellige slags noder i JSF Livscyklus.
Se knude
- Vis en visning (side)
Metode opkaldsnode
- Ring til en metode
Skift knude
- Vælg en af en række sager
Returner knudepunkt
- Afslut strømmen
Flow opkaldsnode
- Ring til en anden strøm
Strømme svarer til metoder
Nedenfor er lignende flowmetoder i JSFs livscyklus:
Indgangspunkt, parametre, udgangspunkter
- Kan returnere en eller flere værdier
Flow Omfang
- Flow-scoped bønner er som lokale variabler
Indlejrede flowopkald
- Opkaldsstabel
En opkaldsstabel bruges til at holde styr på påkaldelser og omfang af strømme, nøjagtigt som hvordan den fungerer med metoden Når en strøm kaldes, skubbes en ny indgang i stakken, og når flowet vender tilbage, springes det fra stakken. Der er to måder at specificere konfigurationen af flow.
XML-konfigurationsfil
- I ansigter-config.xml eller i en separat fil
I Java ved hjælp af Flow Builder API
- CDI-producentmetode med @FlowDefinition-kommentar
Konklusion: JSF Livscyklus
Java Server Faces (JSF) er standardkonceptet til etablering af webapplikationer i Java. Ikke desto mindre er der adskillige ydelser og konfigurationer, der er nødvendige for at gøre applikationerne mere sikre, pålidelige og effektive gennem udviklingen såvel som implementeringen af JSF-applikationer.
Anbefalede artikler
Dette har været en guide til JSF Livscyklus. Her har vi diskuteret de seks forskellige regelmæssige faser af JSF-livscyklus og fem forskellige slags knudepunkter i JSF-livscyklus. Du kan også se på de følgende artikler for at lære mere -
- JSP vs JSF - Topforskelle
- Java EE vs forår
- Java Servlet-interviewspørgsmål
- Karriere i Java