
JavaServer Faces (abrégé en JSF) est un framework Java, pour le développement d'applications Web.
À l'inverse des autres frameworks MVC traditionnels à base d'actions, JSF est basé sur la notion de composants, comparable à celle de Swing ou SWT, où l'état d'un composant est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête.
JSF est agnostique à la technologie de présentation. Il utilise Facelets (en) par défaut depuis la version 2.0, mais peut être utilisé avec d'autres technologies, comme JSP (qui était utilisé jusqu'à la version 1.2) ou XUL.
Première version des spécifications de JSF, est sortie le .
Les spécifications JSF 1.1 sont définies dans la JSR 127 du consortium Java Community Process, sorties le , celles-ci requièrent les bibliothèques suivantes :
Les spécifications de la version 1.2 sont définies dans la JSR 252 sortie le , celles-ci requièrent les bibliothèques suivantes :
JSF 1.2 comprend un ensemble d'améliorations mineures à la spécification précédente, JSF 1.1 :
Les spécifications de JSF 2.0 sont définies dans la JSR 314 sortie le . Elle remplace les précédentes versions et correspond à la première mise à jour majeure des spécifications entrainant de nombreuses modifications, afin d'en faciliter l'utilisation, augmenter les fonctionnalités et les performances selon le Java Community Process. Cette sortie coïncide avec celle de Java EE 6.
C'est donc la version anterieure a la version 2.2 de JSF sortie le . Elle comporte uniquement des corrections mineures. De ce fait, elle s'appuie sur la même JSR que JSF 2.0.
Version sortie en . Les spécifications sont définies dans la JSR 344.
JSF est constitué principalement de:
Les deux jeux de composants standards de JSF s'avèrent trop limités et insuffisants pour le développement d'applications d'entreprise. Il est possible dès lors d'utiliser des jeux de composants additionnels qui offrent de nouveaux composants plus riches.
On peut citer par exemple: