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 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ó.http://it-republik.de/jaxenter/news/Was-ist-neu-in-JSF-2.1-057653.html 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. JSF 2.3 (2017. április 17.) Egy JSF oldal életciklusa A nézet visszaállítása (Restore view) A kérésben szereplő értékek érvényesítése (Apply request values) Validációk (Process validations) A modell értékeinek frissítése (Update model values) Az alkalmazás meghívása (Invoke application) A válasz generálása (Render response)

Részei 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 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 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 Apache MyFaces ICEFaces RichFaces PrimeFaces Oracle ADF

Egyéb támogatás Liferay PortletFaces

Jegyzetek

További információk JSF honlap JSF specifikáció JSR 372 (JSF 2.0) JSR 314 (JSF 2.0) JSR 252 (JSF 1.2) JSR 127 (JSF 1.0 and 1.1)

Kategória:Java API-k