**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 *default*nya. Teknologi tampilan lainnya, seperti XUL, juga dapat digunakan. Sementara itu, JSF 1.x menggunakan JavaServer Pages (JSP) sebagai sistem templat *default*nya.

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 Diarsipkan 2021-03-27 di Wayback Machine.
* 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

1. ↑  JavaServer Faces Technology
2. ↑  Bosch, Andy (2010-11-29). "Was ist neu in JSF 2.1" (dalam bahasa Jerman). it-republik.de. Diakses tanggal 2013-02-19.
3. ↑  Bergsten, Hans. "Improving JSF by dumping JSP". O'Reilly. Diakses tanggal 18 Agustus 2011.

Pranala luar
------------

* Situs web resmi Halaman proyek untuk JSF pada java.net
* Core Servlets JSF Tutorials Diarsipkan 2020-06-27 di Wayback Machine. 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 Diarsipkan 2018-07-20 di Wayback Machine.
* 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