JavaServer Faces (JSF) is een Java-specificatietoegepast voor het bouwen van componentgebaseerde gebruikersinterfaces voor webapplicaties. Het is ook een officieel standaardraamwerk van Oracle Corporation als onderdeel van het Java Platform, Enterprise Edition.
JSF omvat een set API’s om representatieve stateloze views weer te geven, standaard UI-componenten (zoals formulieren, hyperlinks, invoervelden), gegevensoverdracht tussen UI-componenten en server-side components (beans), Event handling etc.
JavaScript wordt vaak gebruikt om client-side gedrag in JSF-componenten te implementeren. JSF-API’s bieden een manier om JavaScript en andere client-side talen te integreren met JSF-componenten. Bijvoorbeeld, een JSF UIComponent kan worden geassocieerd met een “component-type” dat een ClientBehaviorHolder is, een interface die wordt gebruikt om “behavior” aan een component te verbinden, zoals JavaScript-code.
Terwijl JSF de primaire server-side rendering-engine is, kan het ook samenwerken met JavaScript (client-side) om aanvullende functies te bieden, zoals AJAX-ondersteuning waarbij gedeeltelijke pagina-updates mogelijk zijn zonder de volledige pagina te herladen.
Daarnaast zijn er JavaServer Faces-bibliotheken zoals PrimeFaces, die rijkdom toevoegen aan webapplicaties door het verstrekken van composietcomponenten (bijv. kalenders, tabels met data, diagrammen, etc) die al zijn geïntegreerd met JavaScript en AJAX-functionaliteiten. Hierdoor kunnen ontwikkelaars krachtige webinterfaces bouwen met minder complexiteit.