Java Server Faces

JavaServer Faces (JSF) er et Java-baseret applikationsrammeværk, der simplificerer udviklingen af brugergrænseflade-software i J2EE-applikationer. JSF benytter JSP-sider som fremvisningsteknologi, men andre teknologier kan også benyttes.

JavaServer Faces-rammeværket 
JSF omfatter
 En række API'er til at repræsentere brugergrænsefladekomponenter (UI-komponenter) og vedligeholde deres tilstand, håndtere events (såsom klik på knapper eller bevægelser med musen), validere inddata i fx tekstfelter, definere navigationsmønstre samt understøtte internationalisering ved at udfaktorisere statisk tekst
 En standard-sæt af UI-komponenter
 To JSP-taglibs: Javaklasser, der indpakker UI-komponenterne til brug i fx JSP
 En server-side event-model
 Managed JavaBeans, der kan refereres direkte gennem JSP-tags
 Et særligt sprog for udtryk, JSF-EL

JSF-specifikationen blev udviklet under den såkaldte Java Community Process som JSR 127, der definerede JSF 1.0 and 1.1, samt JSR 252, der definerede JSF 1.2. JSF 1.2 (11/5 2006) – seneste udgivelse.

Andre Web-GUI-rammeværker

Microsoft ASP.NET 
ASP.NET fra Microsoft har en komponentbasret indgangsvinkel til udvikling af webapplikationer, der minder om JSFs.
I ASP.NET 1 var renderingskode dog ikke adskilt fra komponent-grænseflader, som det er tilfældet i JSF, hvorfor renderingsmekanismen ikke kunne udskiftes. ASP.Net v2 introducerede muligheden for at udskifte standardrenderingsmekanismen med trediemands. ASP.NET er tættere intergreret til Microsoft udviklingsværktøjer (som fx Visual Studio, der tillader Drag & Drop-generering af UI-komponenter).

Forretningslogikken gemmes i en separat fil ("code-behind"-filen) og er tilknytter UI-komponenterne ved at abonnere på events, der genereres på komponenter (såsom mouse-over, klik på knapper, o.l.).

Resultatet er, at forretnings- og præsentationslaget er tæt knyttet sammen i ASP.NET-applikationer (i Java-sprogbrug er arkitekturen en Model 1). JSF, derimod, er en Model 2- eller Model-View-Controller-arkitektur, hvor forretningslogikken er helt adskilt fra præsentationslaget via en controller (nemlig JSF-servletten).

WebObjects / Wotonomy 
WebObjects er det tidligst kendte web-applikationsrammeværk og og blev oprindeligt udviklet af NeXT Software, Inc., sidenhen købt af Apple Computer, da det købte NeXT. Det indeholder en MVC-arkitektur, der minder om JSFs.

Struts 
Struts er et populært Model 2 MVC-softwarerammeværk fra Apache. Det tilbyder dog ikke en JSF-lignende komponentmodel. Struts benytter JSP til rendering.

Se også 

 GUI – grafisk brugergrænseflade
 Webportal

Litteratur 
 Jonas Jacobi, John R. Fallows: Pro JSF and Ajax, Apress, 
 Chris Schalk, Ed Burns, James Holmes: JavaServer Faces: The Complete Reference, McGraw-Hill Osborne Media, 
 David Geary, Cay Horstmann: Core JavaServer Faces, Prentice-Hall, 
 Kito D. Mann: JavaServer Faces in Action, Manning Publications Company, 
 Bill Dudney, Jonathan Lehr, Bill Willis, LeRoy Mattingly: Mastering JavaServer Faces, John Wiley & Sons, 
 Hans Bergsten: JavaServer Faces, O'Reilly & Associates, 
 Budi Kurniawan, Nancy Maragioglio: JavaServer Faces Programming, McGraw-Hill Osborne Media, 
 James Turner, Craig McClanahan, Kunal Mittal: JavaServer Faces Kick Start, SAMS,

Eksterne henvisninger 
 Oracles JSF-hjemmeside
 JSF specifikation (Project Mojarra) 
 JSR 252 (JSF 1.2)
 JSR 127 (JSF 1.0 and 1.1)

Javaprogrammering