Belajar JSF (Java Server Face)
31 August 2008 at 20:25 | Posted in Uncategorized | 29 CommentsTags: java
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.
—
29 Comments »
RSS feed for comments on this post. TrackBack URI
Leave a Reply
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.
bookmark dulu bos,…
Comment by angus— 20 October 2008 #
mas, klo nyetting jsf di ubuntu 8.10 gimana caranya?
Comment by aryk— 20 December 2008 #
bukannya sudah otomatis disediakan netbeans? saya sih menggunakan yang sudah disediakan netbeans.
Comment by yudiwbs— 22 December 2008 #
Pak, bukannya Sping itu sebagai Ioc, jadi bukannya Struts dan Spring itu saling melengkapi?
Comment by Ahmad Tanwir— 28 December 2008 #
@ata, nggak ngerti juga
Belum pernah nyoba soalnya
Comment by yudiwbs— 3 February 2009 #
@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
Comment by yudiwbs— 3 February 2009 #
Jadi JSF itu sederhananya apa? Boleh dikata begini kah:
Netbeans + JSF = IDE mirip Delphi for PHP ?
Comment by wliiy— 12 March 2009 #
JSF tidak harus menggunakan netbeans. Netbeans cuma IDE saja. Setahu saya sih, JSF itu sekedar framework untuk membuat aplikasi web.
Comment by yudiwbs— 12 March 2009 #
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
Comment by arif eko— 6 May 2009 #
@arif: makasih, tentang EJB, nanti kalau ada waktu
Comment by yudiwbs— 6 May 2009 #
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
Comment by rizal— 27 May 2009 #
mas aku butuh ttg jsf donk,,tp yg bener dari basic bgt,,soalnya baru mo bljr nih,,thnx
Comment by driew— 29 May 2009 #
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.
Comment by papa dina— 5 June 2009 #
@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
Comment by yudiwbs— 5 June 2009 #
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..
Comment by gardie— 8 June 2009 #
saya suka artikel ini. tapi saya berterimakasih jika dikasih juga tutorial dari 0. dari cara install barangkali, sampai dengan membuat satu simple application. thanks
Comment by panji— 27 September 2009 #
Keren Bukannya JSF Berat pak kompiku pak arep meledak nih
Comment by HackerMpia— 27 October 2009 #
mas ajarin langkah per langkahnya donk….
Comment by fitri— 13 November 2009 #
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….
Comment by YADI— 26 November 2009 #
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-.
Comment by senn— 16 February 2010 #
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.
Comment by yudiwbs— 16 February 2010 #
cara install JSF nya gimana ya pak ??
Comment by Budi Raharjo— 8 October 2010 #
Kalau menggunakan netbeans, seingat saya sudah ada disana.
Comment by yudiwbs— 8 October 2010 #
[...] 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, [...]
Pingback by Memulai Project Java Server Faces di Netbeans 6.9 « Frendhi Saido Danaro— 8 November 2010 #
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 ||^__||||
Comment by Nur Elly Redfox— 30 November 2010 #
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..
Comment by jikun— 16 May 2011 #
makasih penjelasannya mas….membantu
Comment by giriayoga— 13 July 2011 #
pake netbeans aja ….
Comment by Om pili— 26 January 2012 #
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
Comment by Daniel— 27 February 2012 #