Road to JSF: Part I

Jika itu adalah batasanmu, kau takkan dapat melampauinya. Tetapi jika kau melampauinya, itu bukanlah batasanmu. Andrew Poon

JSF (Java Server Faces) itu mudah, learning curvenya pendek, banyak yg bisa langsung bikin aplikasi dengan JSF tanpa harus ngerti konsep Servlet, tapi tidak banyak yang mengerti dasar2nya shg akan kesulitan nantinya. Artikel ini gw buat untuk temen2 yang mau memulai membangun aplikasi web dengan JSF. Lupakan JSP. Buang jauh2 itu barang, JSP telah bergerak dari Momentum menjadi Monumen.

Sudah cukup lama gw bekerja dengan JSF untuk setiap aplikasi Java yang gw develop. Pertama kali gw kenal JSF melalui Oracle ADF yang menggunakan JSF sebagai controllernya, sekitar thn 2006. Lucunya adalah saat itu gw ga tau konsep dari JSF, gw cuma klak klik dari Oracle JDeveloper, salah satu IDE Java yang dibuat oleh Oracle. Untungnya juga gw ga perlu oprek sampe ke dalam JSF-nya. Jadi praktis saat itu gw ga banyak tau soal JSF. Tapi aplikasi tetap berjalan sesuai dengan yang client mau 🙂 Dan beberapa waktu lalu gw mengerjakan projek dengan JSF dan juga sekaligus menjadi JSF Trainer, jadi gw akan mencoba membahas konsep dari JSF.

Apa itu JSF? JSF adalah sebuah web framework standard dari Sun Microsystems. Zaman dulu, ketika kaum Java mengenal konsep MVC (Model View Controller) mereka membuat sebuah framework yang terkenal yaitu Struts. Dalam dunia MVC kita bisa bagi menjadi 2 bagian, yaitu Action-based dan Component-based. Action-based memapping antara URL dengan Action, misalnya sebuah form yang mempunyai atribut action, atau kalo yang sudah biasa dengan Struts, pasti kenal dengan kelas Action-nya, tempat dimana kita definisikan method yang akan dijalankan dan apa yang akan ditampilkan setelah itu. Spring MVC juga masuk ke dalam spesies ini. Selanjutnya metode tsb berevolusi mengikuti kebutuhan lingkungan dimana user menginginkan interaksi yang lebih rich dengan aplikasinya. Mereka juga menginginkan suatu cara yang lebih mudah dalam membangun aplikasi dikenal dengan RAD (Rapid Application Development). Lahirlah Component-based MVC Framework. Setiap halaman dari aplikasi merupakan sebuah komponen, button, form, textfield, label, dsb. Dan setiap komponen tsb dapat berinteraksi dengan user (event dan listener). Perbedaan yang cukup mencolok dengan saudaranya adalah proses mappingnya, setiap method dimapping dengan komponen. Misalnya, jika komponen tsb ditekan dia akan lakukan method A, jika komponen B berubah dia akan panggil method C, dst.

Hmm, para penggemar desktop mulai berpikir, kayanya itu yang biasa kita lakukan selama ini? Yap memang mirip sekali dengan Swing. Jadi bukan hal yang sulit bagi desktop apps developer untuk menggunakan framework jenis ini. Beberapa saudara dekat JSF adalah Wicket dan Tapestry.

Dengan konsep komponen spt ini, banyak sekali sekumpulan komponen yang tersedia dan bisa digunakan secara cuma2. Mulai dari komponen non-AJAX sampai AJAX. Sebut saja komponen2 seperti, Tomahawk, Richfaces, ICEfaces, DynaFaces, dan masih banyak lagi. Bingung? coba cek matriks yang membandingkan fitur2 dari semua komponen JSF yang ada.

Sebelum lebih jauh mempelajari JSF, harus mengerti terlebih dahulu konsep dan istilah2 di-dalamnya.

  • Renderer
  • Managed Bean
  • Event dan Listener
  • Validator dan konverter
  • Messages
  • Navigation

Kita akan bahas semuanya di bagian ke 2 dari artikel ini. Kalo yang ga sabar, silahkan googling 🙂

Dan terakhir yang perlu benar2 dipahami request-response lifecycle dari JSF, yang ga sabar silahkan lihat di sini.

Mulai darimana belajar JSF?

5 comments

  1. I belief in JSF tapi blum liat adopsinya di real project. Sementara Struts 1.x mungkin benar bisa dibilang obsolete tp adopsi Struts 2 juga tidak keliatan gregetnya spt pendahulunya. IMO web development dalam dunia Java sedang dalam persimpangan. Sun sendiri juga tidak bisa mengendorse mana yg mereka dukung atau kedepankan. Apakah JSF atau JavaFX? RIA, AJAX, JAVAFX, FLEX, GWT ?? Too many tags.. Sekarang yang perlu dipelajari justru bagaimana cara memilih 😀

  2. wah boleh bang , tp tau ga’ alamt url atau referensi web untuk belajar JSF itu sendiri kalau perlu yang ada contohnya sekalian biar skalian di perktekin gt.
    sekarang saya masih pakai JSP tapi saya bingung pakai JSF, saya pakai netbeans untuk tools nya

Leave a Reply