Kusandriadi.com I Just Want to Share

[Java] Integrasi JSF 2.0, Spring and Hibernate

JavaServer Faces (JSF) adalah Web Framework berbasis komponen yang sudah di standarisasi oleh Sun. Saya memang sedang mendalami java web, dan pilihan untuk web framework yang akan saya pelajari adalah JSF, workflow dari JSF menurut saya cukup sulit (terlepas dari design UI JSF yang cukup mudah dimengerti oleh orang yang telah mendalami desktop programming), kurva belajar JSF juga menurut saya terlalu panjang. Kode program yang akan saya sertakan dibawah mungkin masih banyak yang rancu dan agak berantakan, yah setidaknya dengan menaruh di blog ini bisa mengingatkan saya jikalau nanti saya lupa atau syukur jika bisa membantu pembaca untuk memulai belajar JSF.

Disini saya membuat program CRUD menggunakan JSF, Spring dan Hibernate, saya juga menggunakan primefaces sebagai component library, kenapa? karena setau saya, saat ini component library yang mendukung JSF 2.0 baru primefaces, sedangkan richfaces dan icefaces yang notabene lebih sering digunakan untuk developtment masih dalam pengembangan untuk full support JSF 2.0.

Program yang saya sertakan dibawah tidak saya sertakan library untuk Spring dan hibernate, jadi mungkin pembaca bisa memasukan nya sendiri. Sekedar intermezzo, ketika kita memasukan library JSF ke dalam container, kita harus mendaftarkannya dulu di web.xml, ini lumrah dan keharusan bagi semua Web Framework di java pasti harus di daftarkan disini, berikut petikan kode nya :

web.xml   
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>jsf-hibernate-spring-crud</display-name>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>
 
  <!-- atur sebagai developtment, agar error akan ditampilkan lebih detail -->
  <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
  </context-param>
 
   <!-- daftarkan konfigurasi spring -->
   <context-param>
   <param-name>contextConfigLocation</param-name>
	<param-value>/WEB-INF/spring-ctx.xml</param-value>
   </context-param>
 
    <!-- ini loader untuk membaca konfigurasi spring -->
    <listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
 
     <listener>
	<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
      </listener>
 
      <!-- daftarkan servlet nya primefaces -->
     <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
    </servlet>
 
    <!-- daftarkan servlet nya JSF -->
    <servlet>
  	<servlet-name>JSF</servlet-name>
  	<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
 	<load-on-startup>1</load-on-startup>
    </servlet>
 
    <servlet-mapping>
  	<servlet-name>JSF</servlet-name>
  	<url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
 
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/primefaces_resource/*</url-pattern>
    </servlet-mapping>
</web-app>

setelah itu jangan lupa kita juga harus membuat faces-config.xml agar nanti nya JSF bisa mengatur objek – objek yang akan dibuat, dipassing, atau di inisiasi :

<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
	version="2.0">
        <!-- daftarkan EL nya spring agar JSF bisa membaca bean yang telah diinject,dll -->
	<application>
		<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
 	</application>
 
        <!-- ini disebut Dependency Injection, kita menginisasi object dengan atau tanpa object lain yang telah dibuat -->
 	<managed-bean>
		<managed-bean-name>biodataManipulation</managed-bean-name>
		<managed-bean-class>com.kusandriadi.crud.model.BiodataManipulation</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
		<managed-property>
			<property-name>dao</property-name>
			<property-class>com.kusandriadi.crud.dao.BiodataDao</property-class>
			<value>#{biodataDao}</value>
		</managed-property>
	</managed-bean>
</faces-config>

Mungkin seterusnya bisa dipelajari di kode program yang saya sertakan, program yang saya buat menggunakan Eclipse Galileo.

Kritik dan Saran Welcome, kita sama-sama belajar :)

Regards

2 Responses to “[Java] Integrasi JSF 2.0, Spring and Hibernate”

  1. charis says:

    Mas saya juga sedang mempelajari jsf lebih tepatnya memulai belajar jsf. tuntutan untuk judul laporan akhir nih mas.. kalo jsf dengan managed bean itu gimana ya pembagian komponennya.. dah baca2 tapi ga mudeng2(paham).. kalo ada referensi materi, mau dong mas..

    [Reply]

    Kus Andriadi Reply:

    itu DI nya JSF, saya gak punya materi tetap mas…soalnya biasanya saya cuma nyari2 secara acak dari google :)

    [Reply]

Leave a Reply

CommentLuv Enabled

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Get Adobe Flash playerPlugin by wpburn.com wordpress themes