Belajar JSF (Java Server Face)

31 August 2008 at 20:25 | Posted in Uncategorized | 31 Comments
Tags:

Ini berawal dari pekerjaan yang sebenarnya harus saya selesaikan beberapa bulan lalu (yang saya pending untuk menyelesaikan S2).  Tidak terlalu diburu deadline tapi harus selesai. Jadi cocok untuk eksperimen hal yang baru🙂

Saya ingin sekali membuat aplikasi web berbasis Java.  Sebelumnya saya belajar PHP, sampai membuat sendiri framework MVC sederhana  (tidak dari nol sih).  Di Java saya pernah mencoba sekilas servlet dan JSP, kemudian men-debug aplikasi web Java yang cukup besar (servlet, JSP, taglib) buatan orang lain.  Yang belum adalah mencoba sendiri salah satu framework.

Berdasarkan pencarian di internet, sepertinya ada dua framework yang paling populer, yaitu Spring dan Struts.  Dari yang saya baca, Struts tampaknya merupakan perbaikan dari Spring, jadi saya tentukan akan menggunakan itu. Saya baca sekilas tutorialnya, tetapi saat saya akan membuat new project di Netbeans saya lihat ada opsi Java Server Face.  Hmm kalau sampai menjadi bagian dari Netbeans pasti lumayan penting nih.  Akhirnya saya coba lihat-lihat tutorial dan …  sepertinya lebih menarik dari Struts🙂.  Struts menurut saya  (dari sudut pandang awam) sekilas seperti MVC biasa, sedangkan pada JSF yang menarik adalah sistemnya yang component based, event based dan statefull.  Saya dulu adalah programmer Delphi (pernah jualan component juga), jadi wajar juga jika saya tertarik dengan konsep JSF ini.

Ada beberapa tutorial, tetapi menurut saya yang paling bagus adalah: http://www.ibm.com/developerworks/library/j-jsf1/ Dia membahas perbandingan JSF dengan Struts plus contoh software pada tutorialnya pas sekali.  Tidak terlalu kompleks tapi juga tidak menggampangkan. Setelah baca tutorial ini Jadi lebih mantap belajar JSF

Berdasarkan apa yang saya baca,  inti JSF mirip dengan dev. tools desktop seperti Delphi atau VB. Kita letakan komponen user interface, kemudian input/outputnya kita hubungkan dengan sumber data, sedangkan  buttonnya kita hubungkan dengan method yang akan menangani event “onclik”.  Saat “button” ditekan, sumber data kita manipulasi dan otomatis komponen di layar yang terhubung dengan sumber data tersebut (Label) akan menampilkan hasilnya.  Bagi pengembang aplikasi dekstop hal ini sangat intuitif ‘kan?

Di JSF, sumber data ini disebut Managed Bean. Jika kita menggunakan  Netbeans meletakan UI-nya  jelas tidak semudah IDE Delphi, menghubungkan komponen dengan sumber data dan event handler juga harus dilakukan secara manual. Tapi ini sudah lebih baik menurut saya.

Untuk selanjutnya saya perlu baca lebih detil lagi, tutorial J2EE di Sun sepertinya bagus. Bab 18-21 membahas JSF secara lebih detil.  Baca dulu ah, nanti akan saya lanjutkan🙂

–update 1 sep 08 — Tutorial Sun ternyata tidak terlalu bagus, sekarang saya sedang mencoba membuat aplikasi guestbook. Kena bug  “Cannot find FacesContext “, ternyata jangan lupa tambahkan path /faces pada saat mengeset URL untuk run. Bug kedua “Target Unreachable”: Disebabkan karena saya me-rename nama bean, walaupun sudah dengan refaktor ternyata tetap harus me-rename secara manual di faces-config.xml  —

— update 2 sep 08 —
Buku tamu saya menggunakan satu page, di atas input dan di bawah adalah daftar tamu beserta komentar berbentuk tabel. Untuk sementara tidak menggunakan database, karena saya pikir beans di JSF persistent. OK, jadi ada dua beans, satu TamuBeans untuk input dan DaftarBeans untuk isi tabel.  Saat user submit, action-nya adalah “DaftarBeans.tambahTamu”. Nah, masalahnya bagaimana DaftarBeans mengambil data TamuBeans? Setelah googling ternyata bisa melalui injected bean. Jadi faces.config.xml-nya dibuat sbb:

    <managed-bean>
        <managed-bean-name>TamuBean</managed-bean-name>
        <managed-bean-class>com.yuliadi.bukutamu.TamuBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>DaftarTamu</managed-bean-name>
        <managed-bean-class>com.yuliadi.bukutamu.DaftarTamu</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>currentTamu</property-name>
            <value>#{TamuBean}</value>
        </managed-property>
    </managed-bean>

Scope juga harus dibuat jadi “session”, karena jika menggunakan “request” maka DaftarTamu seperti dicreate ulang untuk setiap submit. Untuk menampilkan info mengenai dataTable tag dapat dilihat di http://www.roseindia.net/jsf/dataTable.shtml,  tapi array di contoh tersebut saya ganti dengan List.  Tahap berikutnya saya akan mencoba koneksi dengan database.

31 Comments »

RSS feed for comments on this post. TrackBack URI

  1. bookmark dulu bos,…

  2. mas, klo nyetting jsf di ubuntu 8.10 gimana caranya?

  3. bukannya sudah otomatis disediakan netbeans? saya sih menggunakan yang sudah disediakan netbeans.

  4. Pak, bukannya Sping itu sebagai Ioc, jadi bukannya Struts dan Spring itu saling melengkapi?

  5. @ata, nggak ngerti juga🙂 Belum pernah nyoba soalnya

  6. @mr x yang sudah memberikan komentar: saya terbuka dengan kritik, dan kritik anda sebenarnya bagus. Tapi karena ditulis dengan tidak sopan dan tidak beradab (dan yang menulis anonim), terpaksa saya moderasi. Saran saya: Berhenti dulu mrogram sejenak dan nikmati hidup dulu deh anda nampaknya terlalu stress🙂

  7. Jadi JSF itu sederhananya apa? Boleh dikata begini kah:
    Netbeans + JSF = IDE mirip Delphi for PHP ?

  8. JSF tidak harus menggunakan netbeans. Netbeans cuma IDE saja. Setahu saya sih, JSF itu sekedar framework untuk membuat aplikasi web.

  9. wah penjelasannya padat dan jelas, jadi bersemangat pengen melejarin tutorialnya JSF nih, sebelumnya saya nyoba EJB tapi terlalu enterprise banget jadi jatuhnya cuman sampe JB(java Bean). kalu sempat ngasih artikel EJB juga donk. ditunggu

  10. @arif: makasih, tentang EJB, nanti kalau ada waktu🙂

  11. mas minta ada g buku or bahan yang lengkap saolnya aq lg ngerjain TA eksplorasi JSF tapi masih bingung?coz emang baru coba Java..
    makasih

  12. mas aku butuh ttg jsf donk,,tp yg bener dari basic bgt,,soalnya baru mo bljr nih,,thnx

  13. Salam kenal pa Yudi,

    Ketika di jakarta dulu saya tertarik banget pake jsf, tapi mungkin karena faktor umur yang sudah cape coding lagi, sy develope pake framework adf faces buatan oracle punya, developement nya cepet, tinggal drag n drop saja. Yang menariknya ADF Faces ini based on JSF juga, jadi bisa dibilang pengembangan dari JSF karena sudah dilengkapi ajax. Sedangkan untuk layer business logic nya, dia pake Business Compoenent (BC), mirip kayak hibernate+ibatis. tutorialnya oke kok, ini linknya http://www.oracle.com/technology/pub/articles/adf-from-design-to-reality/index.html.

    Pa Yudi ada di bandung ya? sy juga lagi di bandung nih , jadi implementator telco di telkom bandung japati.

  14. @papa dina: makasih infonya. JSF ini memang saya rasa belum mature, entah kalau sekarang.

    Saya di Bandung mas, dulu saya pernah kerja praktek di sisfo telkom japati juga. Kapan-kapan mohon share ilmunya di kampus saya mas, supaya mahasiswa dapat pencerahan tentang dunia kerja🙂

  15. pak saya mau membuat project jsf pake netbeans tapi untuk plugin instalasi facelet caranya gimana y pak?soalnya error terus pas abiz di aad plugin kemudian dia g mau pesan errorna gini pak:

    Missing required modules for Plugin Facelets Support:
    module org.netbeans.api.java.classpath/1 > 1.0 Java Support APIs [module org.netbeans.api.java/1 > 1.18] module org.netbeans.modules.editor.deprecated.pre61completion/0-1 > 1.0 module org.netbeans.modules.editor.deprecated.pre61settings/0-1 > 1.0 JSP Editor [module org.netbeans.modules.web.core.syntax/2] JSP Parser [module org.netbeans.modules.web.jspparser/3]
    Missing required modules for Plugin Simple JSF/Facelets Snippets:
    module org.netbeans.modules.editor.deprecated.pre61completion/0-1 > 1.0 module org.netbeans.modules.editor.deprecated.pre61settings/0-1 > 1.0 JSP Editor [module org.netbeans.modules.web.core.syntax/2]

    trus bapak punya contoh aplikasi JSF pake netbeans+facelets ga??
    trus ada referensi tempat kursus framework, khususnya JSF yg bagus dimana untuk daerah bandung?
    terimakasih pak..

  16. saya suka artikel ini. tapi saya berterimakasih jika dikasih juga tutorial dari 0. dari cara install barangkali, sampai dengan membuat satu simple application. thanks

  17. Keren Bukannya JSF Berat pak kompiku pak arep meledak nih

  18. mas ajarin langkah per langkahnya donk….

  19. saya bukan kirim komentar, tapi lagi pusing…!
    tolong dong bagi ilmunya tentang jsf, apalagi coneksinya ke database mysql atau access.
    jika ada web nya atau blong yg bisa di unduh. tunjukin dong…?
    itu aja sih…
    Terimakasih banyak….

  20. gak sengaja baca karena lagi butuh buat project pak. pendapat saya tentang jsf> kayaknya jauh disederhanakan gak kayak jsp/servlet programming. semua session secara default udah diurusin sama dia, cuman yang pusing kalo pengen custom keluar dari EL standard punya dia. frameworknya udah ngikut ke style framework jaman sekarang : semuanya di akses via satu context utama ‘FacesContext’. versi javascript / ajax integrated pun banyak.. eg: icefaces– yang paling saya suka dari jsf ini navigasi nya pak. (gimana dengan bapak?)

    bagi-bagi referensi> saya belajar pake buku manning : java sever faces in action, saya rasa bukunya enak dibaca, terarah dan mendalam.

    hmm… salam kenal pak, kalau bapak memang pak yudi yang sama.. ::temen saya (mahasiswi ilkom upi) sering membicarakan bapak -nama bapak paling banyak dia sebut-.

    • salam kenal juga, saya memang di ilkom upi dan memang hanya ada satu dosen bernama yudi disana. Mengenai JSF-nya sendiri, sudah lupa sekarang hehe, IMO masih belum mature jadi saya nggak sentuh2 lagi, entah kalau nanti.

  21. cara install JSF nya gimana ya pak ??

    • Kalau menggunakan netbeans, seingat saya sudah ada disana.

  22. […] web. Lebih lengkap lagi, coba tengok penjelasan dosen saya Bapak Yudi Wibisono di artikel berikut “Belajar JSF (Java Server Face)”. Sedangkan Primefaces adalah component suite untuk Java Server Faces. Dengan Primefaces, […]

  23. Saya newbie pak mau tanya ?

    Netbeans yang bapak pakai Netbeans berapa , JSF itu buat website kayak buat aplikasi tinggal geser dan letakkin komponennya di Frame begitu kan ?????.

    di tunggu tutorialnya Pak Yudi ||^__||||

  24. Spring ada karena melihat design struts yang buruk. Begitu pak. Bukan seperti yg bpk tulis -> “Dari yang saya baca, Struts tampaknya merupakan perbaikan dari Spring, jadi saya tentukan akan menggunakan itu. “. He.he..

  25. makasih penjelasannya mas….membantu

  26. pake netbeans aja ….

  27. Hallo Mas Yudi,

    salam kenal. Kebetulan tugas akhir saya salah satunya menggunakan JSF. Iseng2 cari di google bacaan JSF berbahasa Indonesia, sampe dah di sini. Ini cuma berbagi apa yg sudah dikerjakan untuk TA. Bukan wah banget kok, semoga bisa jadi awal pembicaraan untuk dikembangkan. Alat2nya menggunakan eclipse indigo, JBoss dan Maven. Tema utamanya tentang simulasi process di web portal menggunakan activiti (framework khusus java untuk business process management). Cukup baru. Ga bisa ngomong banyak soal activiti, pengetahuan masih dangkal, hehehe.

    Mo share juga http://www.primefaces.org. Ini website mantep untuk UI design JSF. Siap pakai. Ga perlu coding dari awal cuman untuk sekedar tampilan.

    Salam

    Daniel

  28. […] penulis blog pada tahun 2009 menduga JSF ini masih belum matang (lihat pada komentarnya).  Kalau sampai saat […]

  29. Terima kasih, Pak Yudi. Artikelnya sudah menguatkan tekad saya untuk mencoba JSF. Baru mau nyemplung ke JSF nih.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: