A JavaServer Faces (röviden JSF) egy Java-alapú MVC keretrendszer webes felhasználói felületek fejlesztéséhez. A komponensvezérelt UI-tervezési modellre épül.

View template-nek vagy Faceletnek nevezett XML fájlokat használ a megjelenítési modell leírására. A kéréseket a FacesServlet dolgozza fel, ami ezután betölti a megfelelő view template-et, felépíti a komponensfát, kezeli az eseményeket és létrehozza (generálja) a választ (többnyire HTML vagy XHTML formátumban) a kliensnek. A felhasználói felület komponenseit (és egyéb objektumokat) minden lekérés végén elmenti, majd ugyanazon view következő előállításakor újra betölti. Ennek a mentési/betöltési folyamatnak több különböző formája ismert, szerver és kliens-oldalon is lehetséges.

Alapértelmezésben a JSF 1.x JSP-t használ a megjelenítésre, de más technológiák is elérhetőek hozzá, mint pl. a XUL vagy a Faceletek. A JSF 2 esetében már a Faceletek használata az alapértelmezett.

Verziók szerkesztés

  • JSF 1.0 (2004. március 11.) – Ez volt az első JSF specifikáció. Fejlesztése a JSR 127 keretében történt.
  • JSF 1.1 (2004. május 27.) – Csak hibajavításokat tartalmazott. A specifikáció nem változott. Ezt a verziót is még a JSR 127 alatt definiálták.
  • JSF 1.2 (2006. május 11.) – Ezt a verziót már a JSR 252 keretében szabványosították. A hibajavításokon kívül tartalmazza többek között az alábbi változásokat:
    • A konfigurációs fájlok alakját XML séma fájlok (XSD fájlok) definiálják a korábbi dokumentumtípus-definíció fájlok helyett.
    • Több frame-mel és több ablakkal rendelkező alkalmazások támogatása.
    • Biztonsági kiegészítések a kliensoldali állapottároláshoz.
    • A specifikáció átszervezése normatív és nem normatív szekciókba.
  • JSF 2.0 (2009. június 28.) – A JEE 6 verzió specifikációjával egyidejűleg jött ki, főverzióváltás, leegyszerűsített használatot, bővített funkcionalitást és teljesítményt nyújt a korábbi verziókhoz képest. A szabványosítási folyamatot a JSR 314 alatt koordinálták.
  • JSF 2.1 (2010. október 22.) – Csak minimálisan változott a specifikáció.[1][2]
  • JSF 2.2 (2013. április 16.) – A JSF 2.2 új koncepciókat vezet be, mint pl. az állapotmentes nézetek, oldalfolyam és képesség hordozható erőforrás szerződések létrehozására.[3]
  • JSF 2.3 (2017. április 17.)

Egy JSF oldal életciklusa szerkesztés

  1. A nézet visszaállítása (Restore view)
  2. A kérésben szereplő értékek érvényesítése (Apply request values)
  3. Validációk (Process validations)
  4. A modell értékeinek frissítése (Update model values)
  5. Az alkalmazás meghívása (Invoke application)
  6. A válasz generálása (Render response)

Részei szerkesztés

A JSF architektúra tartalmazza az alábbiakat:

  • A grafikus komponenseket reprezentáló API-kat, amelyekkel módosítani lehet a komponensek állapotát, eseményeket lehet kezelni és felhasználó inputot lehet ellenőrizni többek között.
  • JSP elemkönyvtárakat, melyeken keresztül hivatkozni lehet a JSF komponensekre JSP oldalakból.
  • Szerveroldali eseménymodell.
  • A komponensek állapotainak kezelése.
  • Managed Bean-ek, melyek speciális JavaBean-ek.

Grafikus komponensek szerkesztés

A JSF grafikus komponenseit az alábbi komponenscsaládokba sorolják:

javax.faces.Command
  • javax.faces.Button – HTML <input> elem.
  • javax.faces.Link – HTML <a> tag, amely submit gombként viselkedik.
javax.faces.Data
  • javax.faces.Table – HTML <table> elem.
javax.faces.Form
  • javax.faces.Form – HTML <form> elem.
javax.faces.Graphic
  • javax.faces.Image – HTML <img> elem.
javax.faces.Input
  • javax.faces.Hidden – hidden típusú HTML <input> elem.
  • javax.faces.Secret – password típusú HTML <input> elem.
  • javax.faces.Text – text típusú HTML <input> elem.
  • javax.faces.Textarea – HTML <textarea> elem.
javax.faces.Message
  • javax.faces.Message – Valamely komponenshez tartozó üzenet.
javax.faces.Messages
  • javax.faces.Messages – Valamely komponenshez tartozó összes üzenet.
javax.faces.Output
  • javax.faces.Format – Paraméterezett szöveg.
  • javax.faces.Label – HTML <label> elem.
  • javax.faces.Link – HTML <a> elem.
  • javax.faces.Text – HTML <span> elem.
javax.faces.Panel
  • javax.faces.Grid – HTML <table> elem.
  • javax.faces.Group
javax.faces.SelectBoolean
  • javax.faces.Checkbox – checkbox típusú HTML <input> elem.
javax.faces.SelectMany
  • javax.faces.Checkbox – checkbox típusú HTML <input> elemek listája.
  • javax.faces.Listbox – HTML opciólista.
  • javax.faces.Menu – HTML HTML opciólista.
javax.faces.SelectOne
  • javax.faces.Listbox – HTML opciólista.
  • javax.faces.Menu – HTML opciólista.
  • javax.faces.Radio – radio típusú HTML <input> elem.

Megvalósításai szerkesztés

Egyéb támogatás szerkesztés

Jegyzetek szerkesztés

  1. Archivált másolat. [2011. augusztus 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. január 24.)
  2. http://it-republik.de/jaxenter/news/Was-ist-neu-in-JSF-2.1-057653.html
  3. Archivált másolat. [2013. április 20-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. június 19.)

További információk szerkesztés