Fețele serverului Jakarta

Fețele serverului Jakarta

20110510-jsf-logo.tiff
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ță

Image
Jakarta Server se confruntă cu diagrama ciclului 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 .

  1. Restaurare vizualizare („vizualizare restaurare”) selectată pe baza cererii primite o vizualizare (Vizualizare) și construiește arborele componentelor potrivite.
  2. 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.
  3. 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.
  4. Actualizarea valorilor modelului atribuie valorile determinate anterior obiectelor modelului.
  5. Invocați metodele de apelare a aplicației definite de aplicație, de exemplu atunci când a fost apăsat un buton.
  6. 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:

Cadrele componente

Cadrele componente extind implementările JSF. Ele pot fi folosite pentru a genera JavaScript și Ajax , de exemplu .

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

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

Commons : fețe de server Jakarta  - Colecție de imagini, videoclipuri și fișiere audio

Dovezi individuale

  1. projects.eclipse.org .
  2. Versiunea 3.0.0 . 7 octombrie 2020 (accesat la 9 octombrie 2020).
  3. primefaces.org
  4. bootsfaces.net
  5. jboss.org RichFaces, accesat la 18 ianuarie 2011
  6. javaserverfaces.java.net Descărcare Oracle Mojarra JSF, accesat la 18 ianuarie 2011
  7. a b Oracle Mojarra JavaServer Faces. Adus pe 19 ianuarie 2012 .
  8. ^ Andy Bosch: Ce este nou în JSF 2.1. Adus pe 9 octombrie 2011 .
  9. JSR # 344 JavaServer ™ Faces 2.2 Buletin de aprobare final
  10. Ce este nou în JSF 2.2?