JavaServer Faces

JavaServer Faces (JSF) adalah spesifikasi Java untuk membangun antarmuka pengguna untuk aplikasi web. JSF merupakan bagian dari Java Platform, Enterprise Edition.

JSF 2 menggunakan Facelets sebagai sistem templat defaultnya. Teknologi tampilan lainnya, seperti XUL, juga dapat digunakan. Sementara itu, JSF 1.x menggunakan JavaServer Pages (JSP) sebagai sistem templat defaultnya.

Versi JSF 
 JSF 2.1 (2010-10-22) — Versi saat ini. Rilis kedua dari 2.0. Hanya sangat sedikit perubahan spesifikasi.
 JSF 2.0 (2009-06-28) — Rilis untuk kemudahan penggunaan, peningkatan fungsi, dan performa. Bersamaan dengan Java EE 6.
 JSF 1.2 (2006-05-11) — Banyak perbaikan untuk inti sistem dan API. Bersamaan dengan Java EE 5. Awal adopsi ke Java EE.
 JSF 1.1 (2004-05-27) — Rilis perbaikan bug. Tidak ada perubahan spesifikasi.
 JSF 1.0 (2004-03-11) — Rilis spesifikasi awal.

Cara kerja 
Javaserver Faces berdasarkan model perancangan antarmuka pengguna berbasis komponen, menggunakan berkas XML yang disebut templat view atau view Facelets. Permintaan (request) diproses oleh FacesServlet, yang memuat templat view yang sesuai, membangun tree komponen, memproses berbagai event, dan me-render respons (umumnya HTML) kepada klien. State dari komponen UI (dan beberapa objek lain) disimpan pada setiap akhir request (dinamakan stateSaving), dan dikembalikan pada saat pembuatan selanjutnya dari view tersebut. Ada beberapa jenis penyimpanan state, termasuk penyimpanan state client-side dan server-side.

Pengembangan terbaru 
Facelets (yang sebelumnya dirancang secara khusus untuk JavaServer Faces) telah diadopsi menjadi teknologi view resmi untuk JSF 2.0. Ini menghilangkan konflik daur-hidup yang ada dalam JSP, dan mengharuskan pengembangannya ditangani oleh pengembang Java. Facelets memungkinkan pembuatan komponen/tag secara mudah dengan tidak menggunakan kode Java melainkan menggunakan markah XML, untuk menanggapi keluhan tentang JSF 1.x.

Pengembangan JSF yang baru juga menyediakan aksesibilitas yang luas untuk notasi Java 5 seperti @ManagedBean, @ManagedProperty dan @FacesComponent yang menghilangkan perlunya faces-config.xml dalam semua ekstensi framework. Navigasi juga telah disederhanakan. Pergantian halaman dapat dilakukan dengan sederhana, dengan cara menuliskan nama View/Facelet yang diinginkan.

Penambahan Partial State Saving dan pemutakhiran DOM adalah bagian dari dukungan bawaan Ajax standar.

Rilis terbaru dari JSF telah mendukung penanganan sumber daya (resource) seperti gambar, CSS dan JavaScript, memungkinkan artifact dimasukkan dalam library komponen, memisahkan menjadi berkas JAR, atau meletakkan pada tempat yang konsisten pada aplikasi web. Termasuk penamaan logika dan versi dari sumber daya.

Referensi 
 Komunitas JSF - Halaman Utama & Referensi 
 Halaman perkenalan Teknologi JavaServer Faces oleh Sun
 Spesifikasi JSF
 JSR 314 (JSF 2.0 dan JSF 2.1)
 JSR 252 (JSF 1.2)
 JSR 127 (JSF 1.0 dan 1.1)
 JSR 316 (Perubahan ke JSF 2.0 pada Java EE 6)

Catatan

Pranala luar 
  Halaman proyek untuk JSF pada java.net
 Core Servlets JSF Tutorials  Tutorial dengan Kode Sumber
 ICEfaces Situs resmi Proyek Sumber Terbuka ICEfaces
 JSR 276 Design-Time Metadata untuk Komponen JavaServer Faces
 James Holmes' JSF Resources Daftar lengkap dari artikel JSF, entri blog, tutorial, dan lain-lain
 JSF Central Komunitas JavaServer Faces
 Tutorial Java EE 4 Chapter 17: JavaServer Faces Technology
 Tutorial Java EE 5 Chapter 10: JavaServer Faces Technology
 Tutorial Java EE 6 Chapter 4: JavaServer Faces Technology
 Katalog JSF Tutorials, Contoh dan Artikel 
 JSF Matrix daftar beragam penerapan JSF dan fitur-fiturnya
 Tinjauan singkat pada perubahan terkini ke JSF 2.0 yang akan digambarkan dalam Java EE 6
 PrimeFaces Situs resmi PrimeFaces

Kerangka kerja aplikasi web
Java