Fețele serverului Jakarta
| Fețele serverului Jakarta
| |
|---|---|
|
| |
| Date de bază
| |
| dezvoltator | Fundația Eclipse |
| Versiunea actuală |
3.0.0 ( 7 octombrie 2020 ) |
| sistem de operare | platforma independenta |
| limbaj de programare | Java |
| categorie | Cadru |
| Licență | Licența publică Eclipse 2.0, excepție de legare GPL |
| jakarta.ee/specifications/faces/ | |
Jakarta Server Faces (JSF; anterior JavaServer Faces) este un standard cadru pentru dezvoltarea interfețelor grafice de utilizator pentru aplicații web . Bazat pe servleturi și tehnologia JSP , JSF este una dintre tehnologiile web Jakarta EE . Cu ajutorul JSF, dezvoltatorul poate integra cu ușurință componente pentru interfețele utilizatorului în paginile web și poate defini navigarea . Cerințele pentru dezvoltarea conținutului JSF sunt JDK , un container servlet (de exemplu, Apache Tomcat ) și o înțelegere de bază a HTTP și a limbajului de programare Java . Un mediu de dezvoltare integrat poate fi utilizat pentru a simplifica dezvoltarea .
Componente
Pentru a reduce concedierile din cod și pentru a îmbunătăți reutilizarea codului UI în mai multe proiecte, pot fi create și utilizate componente. Componentele JSF sunt supuse unei structuri ierarhice. Similar cu Java Swing API, există componente de container în JSF care pot conține componente. Pentru a structura mai bine aplicația, există o separare strictă între model , prezentare și control , așa cum este oferit de conceptul model-vizualizare-controler .
Un concept central al Jakarta Server Faces este vizualizarea . Aceasta este o structură de copac formată din componente JSF. O astfel de structură apare exact o dată pe apel, adică o dată pe pagină când se utilizează JavaServer Pages (JSP). Vizualizarea este configurată la începutul ciclului de viață JSF, imediat după ce solicitarea a fost primită de la client. În ultima fază a ciclului de viață, componentele vizualizărilor sunt numite recursiv, începând cu rădăcina, pentru a genera răspunsul, de exemplu o pagină HTML. Componenta controlerului , care controlează intrarea utilizatorului, poate fi implementată în JSF folosind propriile componente sau cu așa-numitul handler . Acestea sunt în mare parte scrise cu Java. Logica reală a aplicației are loc în model . Cu JSF, componentele modelului sunt așa-numitele Java beans (clase Java) care sunt gestionate de container. Aplicațiile web JSF nu au de obicei un cod HTML demn de menționat. Codul HTML este vizibil numai în codul sursă al paginii generate. Componentele JSF au propriile renderere . Aceste randere convertesc paginile scrise cu JSF în cod HTML, astfel încât orice browser web HTML să poată afișa pagina. Renderele proprii pot fi scrise pentru alte formate de ieșire.
Ciclu de viață
Specificațiile fețelor serverului Jakarta definesc așa-numitul ciclu de viață pe care o aplicație JSF îl parcurge cu fiecare apel. Acest ciclu de viață este împărțit în șase faze .
- Restaurare vizualizare („vizualizare restaurare”) selectată pe baza cererii primite o vizualizare (Vizualizare) și construiește arborele componentelor potrivite.
- Apply Request Values extrage parametrii din cerere (de obicei o cerere de postare HTTP ) și îi atribuie componentelor JSF corespunzătoare, cum ar fi câmpurile de intrare.
- Validări proces verifică validitatea intrărilor determinate anterior. În acest scop sunt utilizate obiecte de convertor și validator separate care au fost atribuite componentelor din definiția vizualizării.
- Actualizarea valorilor modelului atribuie valorile determinate anterior obiectelor modelului.
- Invocați metodele de apelare a aplicației definite de aplicație, de exemplu atunci când a fost apăsat un buton.
- Render Response generează în cele din urmă răspunsul la solicitarea inițială, de exemplu o pagină HTML. În acest scop, se numesc așa-numitele redare care sunt atribuite componentelor de vizualizare.
Dacă apar erori sau, de exemplu, o pagină HTML care nu conține componente JSF urmează să fie apelată ca răspuns, pot fi omise fazele individuale.
Implementări
Specificația JSF este implementată de o serie de cadre. Acestea sunt de obicei furnizate în containere JEE și adesea pot fi schimbate numai cu dificultate. Acestea includ, de exemplu:
- Mojarra, implementarea de referință Jakarta Server Faces ca parte a serverului de aplicații Java GlassFish
- Apache MyFaces , implementarea de către Apache Software Foundation
Cadrele componente
Cadrele componente extind implementările JSF. Ele pot fi folosite pentru a genera JavaScript și Ajax , de exemplu .
- ICEfaces , cadru open source de la ICEsoft; bazat pe cadrul componentei Woodstock GUI.
- PrimeFaces
- BootsFaces
- Mojarra Scale
- J4Fry
- xulfaces
- jQuery4jsf
- MyFaces Trinidad de la Apache Software Foundation
- MyFaces Tobago de la Apache Software Foundation
- MyFaces Tomahawk de la Apache Software Foundation
- Biblioteca de componente Oracle ADF , un cadru comercial Java pentru aplicații Java pentru întreprinderi (are câteva funcționalități de bază comune cu Apache MyFaces Trinidad )
- RichFaces incluzând Ajax4jsf de la Red Hat (fostul Exadel) [dezvoltarea a fost întreruptă în iunie 2016]
Diferite companii oferă, de asemenea, instrumente de dezvoltare grafică pentru JSF.
standardizare
JSF - Specificație a fost sub Java Community Process dezvoltat (JSR 127) printr - o serie de companii bine-cunoscute și adoptate în versiunea 1.1 pe 27 mai 2004. Versiunea 1.2 (JSR 252) a fost publicată la 11 mai 2006. Versiunea actuală a implementării de referință Mojarra 1.2_15 a fost lansată pe 24 septembrie 2010.
Versiunea 2.0 (JSR 314) a adus în special suportul Ajax . Acesta este disponibil din decembrie 2009 și poate fi descărcat de pe pagina de pornire Oracle. O implementare, precum și un tutorial și alte documente sunt disponibile pentru vizualizare și descărcare în Proiectul Mojarra ; versiunea curentă a implementării de referință Mojarra este 2.0.8. JSF 2.1 este o versiune de întreținere a versiunii 2.0, specificația a fost lansată pe 21 noiembrie 2010, versiunea curentă a implementării de referință Mojarra este 2.1.6. Versiunea JSF 2.2 a fost lansată pe 15 aprilie 2013. În special, conține următoarele inovații: Suport pentru HTML5, cum ar fi transmiterea de noi atribute HTML5 sau atribute de date personalizate, suport de flux extins prin propriul context și domeniu de injectare a dependenței ( @FlowScoped), în plus față de ConversationScope ( @ConversationScoped), vizualizări fără stat prin setarea atributului transient="true", precum și a contractelor de bibliotecă de resurse, o primă abordare pentru a furniza resurse pentru un aspect selectabil.
Jakarta Server Faces include
- O bibliotecă de etichete pentru integrarea componentelor de suprafață JSF în paginile JavaServer sau într-o fațetă ,
- un Java - API pentru controlul controlează interfața utilizatorului. Aceasta include gestionarea evenimentelor , validarea intrărilor, navigarea și asistența pentru internaționalizare .
- Un limbaj de expresie separat (EL), care se bazează pe tehnologia JSP . În JSF, expresiile EL sunt scrise în următoarea notație:
#{1+2}, #{PI/2}, #{handler.attribut}
Principala diferență față de JSP -EL nu se datorează doar # precedentului , ci și în limbajul propriu-zis. JavaServer Pages-Expression Language este mai dinamic decât JSF-Expression Language (JSF-EL). JSF-EL este mai stativ (static), comparabil cu componentele Java Swing . Limbajul de expresie al JSF are o legătură de valoare bidirecțională, i. Aceasta înseamnă că poate citi (de ex. Inițializa) și scrie (de ex. Valori de legare la proprietate) proprietăți (proprietăți ale unui bean). Următorul tabel prezintă tipurile de expresie în limbajul de expresie JSF:
| Expression Language Expression | exemplu |
|---|---|
| Legarea valorilor |
#{handler.name}- numele este o proprietate a bobului de
manipulare |
| Legarea metodei |
#{handler.actionMethode}- actionMethode este o metodă a bobului de
manipulare |
| Aritmetică / Logică |
#{5+8}, #{65/5}, #{99>90}, #{!(5>6)||(8<4)}
|
Când dezvoltați pagini JSF, ar trebui să evitați combinarea expresiilor JSP și JSF, deoarece acest lucru poate duce la probleme.
Managementul mecanismului de fasole
Gestionate Bean Mecanismul permite POJOs cu un domeniu de aplicare specific ( limba engleză domeniul de aplicare ), și valorile inițiale pentru așa-numitele Managed Properties (în cazul special că tipul de fasole java.util.Listsau java.util.Mapeste) să fie furnizate. Acest lucru poate fi configurat fie în configurația XML a aplicației JSF, fie din JSF 2.0 (min. Versiunea Java 1.5) ca o opțiune suplimentară cu adnotări direct în bean. Boabele gestionate pot fi utilizate direct (de exemplu, în fațete) cu ajutorul expresiilor EL.
Domeniile de aplicare a fasolei gestionate (engl. Domeniul de aplicare )
Domeniul de aplicare al unui bob determină cât timp a existat un bob și în ce circumstanțe se consideră că există. După cum sa menționat mai devreme, fasolea gestionată cu proprietăți gestionate poate fi injectată în alte fasole gestionată. Trebuie remarcat faptul că bobul injectat are un domeniu de aplicare mai mare decât bobul în care este injectat. Motivul pentru aceasta este că altfel bobul injectat este potențial mai de scurtă durată decât bobul în care este injectat.
Următorul tabel prezintă toate zonele de validitate din versiunea curentă JSF (2.1) sortate după mărimea ariei de validitate cu cea mai scurtă durată de aplicare în partea de sus.
| Valoare XML <management-bean-scope> | Adnotare | Domeniul de aplicare |
|---|---|---|
| cerere | @RequestScoped | valabil atâta timp cât solicitarea curentă este gestionată |
| vedere | @ViewScoped | valabil atâta timp cât vizualizarea curentă este validă |
| sesiune | @SessionScoped | valabil pentru o sesiune |
| cerere | @ApplicationScoped | valabil pentru cerere |
| nici unul | @NoneScoped | valabil ca bob în care a fost injectat |
Etichete standard JSF (nu sunt complete)
| Nume eticheta | Descriere |
|---|---|
| <f: vizualizare> | Creează o instanță a clasei javax.faces.component.UIViewRoot. Toate componentele conținute devin componente secundare ale vizualizării. |
| <h: formular> | Legează componentele de intrare într-un formular. Trimite cererea POST prin HTTP. |
| <h: panelGrid> | În eticheta HTML <table>. Numărul de coloane determină atributul coloanelor |
| <f: fațetă> | Definește o fațetă ca element secundar al unui container (de exemplu, îndreptându-se către o masă) |
| <h: outputText> | Text HTML normal |
| <h: outputLabel> | În etichetă HTML <etichetă>. Identificarea unui câmp de intrare |
| <h: panelGroup> | Container care combină mai multe etichete JSF într-o singură etichetă |
| <h: inputText> | În eticheta HTML <input> cu type = "text", atributul value se referă la componente (de exemplu, expresia EL) |
| <h: inputSecret> | În eticheta HTML <input> cu tip = "parolă" |
| <h: commandButton> | Buton în HTML. <input> etichetă cu atribut tip (trimitere, resetare, imagine). În mod implicit: trimiteți. Trimite formular și declanșează ActionEvent (prin metoda bean). |
| <h: mesaj> | Emite primul mesaj de eroare pentru componentele specificate în atributul for. Atributul ErrorStyle poate fi folosit ca reprezentare a erorii CSS. |
literatură
- Martin Marinschek și colab.: JavaServer Faces 2.0: Noțiuni de bază și concepte avansate . dpunkt.verlag, 2009, ISBN 978-3-89864-606-2
- Bernd Müller: JavaServer Faces 2.0: Un registru de lucru pentru practică . Hanser, 2010, ISBN 978-3-446-41992-6
- Marcel Urbanek: JavaServer Faces: Înțelegerea JSF și utilizarea acestuia în practică . w3l, 2010, ISBN 978-3-86834-003-7
Link-uri web
- JavaServer Faces Technology la Oracle
- Implementare open source a Apache MyFaces
- Cartea JSF online , din când în când, actualizată versiunea online a cărții menționate mai sus Martin Marinschek și colab.: JavaServer Faces 2.0: Noțiuni de bază și concepte avansate .
- Model de implementare JSF (PDF, 618 kB)
- Demonstrarea componentelor standard și de extensie
- Tutoriale JSF Tutoriale JSF memorate , Exemple de coduri, cele mai bune practici
Dovezi individuale
- ↑ projects.eclipse.org .
- ↑ Versiunea 3.0.0 . 7 octombrie 2020 (accesat la 9 octombrie 2020).
- ↑ primefaces.org
- ↑ bootsfaces.net
- ↑ jboss.org RichFaces, accesat la 18 ianuarie 2011
- ↑ javaserverfaces.java.net Descărcare Oracle Mojarra JSF, accesat la 18 ianuarie 2011
- ↑ a b Oracle Mojarra JavaServer Faces. Adus pe 19 ianuarie 2012 .
- ^ Andy Bosch: Ce este nou în JSF 2.1. Adus pe 9 octombrie 2011 .
- ↑ JSR # 344 JavaServer ™ Faces 2.2 Buletin de aprobare final
- ↑ Ce este nou în JSF 2.2?