Spring Web MVC – Quick Start with Eclipse (Episode 2)


Persiapan:

  1. Tau cara Start New (Dynamic Web) Project menggunakan Eclipse. Jika belum tahu silahkan baca artikel ini
  2. Sudah membaca artikel Spring Web MVC – Quick Start with Eclipse (Episode 1). Jika belum, silahkan baca artikel ini

Apakah anda sudah mengerti alur dari program yang sudah anda buat pada Episode 1? Jika belum, akan saya coba jelaskan agak detail:

  1. Anda (client) merequest alamat http://localhost:8080/firstProgram/hello.asik
  2. Web Server akan membaca settingan web.xml, disitu kita deklarasikan kalau ada request yang berakhiran dengan .asik maka akan diproses oleh Class org.springframework.web.servlet.DispatcherServlet, dengan settingan yang dibuat ada di tjong-servlet.xml
  3. Lalu si Web Server akan membaca settingan lagi di tjong-servlet.xml, disitu kita deklarasikan, jika ada yang merequest page “/hello.asik” akan diatur oleh Controller class=”com.firstProgram.web.HelloController
  4. Web Server akan membaca class com.firstProgram.web.HelloController, pada class HelloController, kita sudah mendeklarasikan untuk menampilkan file pages/hello.jsp. Maka Web Server akan menampilkan pages/hello.jsp kepada Anda (client).

Coba anda perhatikan, jika anda ingin membuat banyak page, pasti akan sangat merepotkan jika harus mendeklarasikan satu persatu file yang anda buat ke dalam tjong-servlet.xml (Khusus untuk controler, anda harus mendeklarasikan satu persatu Controller untuk page yang anda buat). Untuk mengatasi hal tersebut – Spring telah mempersiapkan beberapa optional untuk mengatur konfigurasi Controller dan View – silahkan baca (http://static.springsource.org/spring/docs/2.5.x/reference/view.html) jika ingin mengetahui lebih lanjut. Untuk contoh pada artikel ini saya akan mencoba menggunakan class org.springframework.web.servlet.view.ResourceBundleViewResolver.

Langsung ke contoh saja, silahkan ikuti langkah2 berikut:

  1. Tambahkan javax.servlet-jstl.jar ke folder lib. link bisa diambil di sini.
  2. Edit tjong-servlet.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    
    <!-- the application context definition for the springapp DispatcherServlet -->
    
    <!-- Contoh Pada Episode 1 -->
    <!-- <bean name="/hello.asik" /> -->
    
    <!-- Contoh Pada Episode 2 -->
    <context:component-scan base-package="com.firstProgram.web"/>
    
    <!--Kesalahan pada contoh Gery, see the comment below-->
    <!--<bean id="viewResolver"
    p:basename="views"/>-->
    <bean id="viewResolver"
    p:basename="view"/>
    
    </beans>
    

    *edited 21 March 2011: thanks to Gery

  3. buat Source Folder (selanjutnya untuk file-file configurasi sebaiknya disatukan saja di dalam folder ini) – pada saat build akan di-compile ke dalam Classpath. Caranya klik kanan nama Project – New – Source Folder. Beri nama resources
  4. buat file view.propertiesdalam folder resources yang baru saja anda buat.
    pages/hello.url = /WEB-INF/pages/hello.jsp
    pages/hello.class= org.springframework.web.servlet.view.JstlView
    
  5. pindahkan folder pages menjadi di dalam folder WEB-INF. (Untuk alas an keamanan).
  6. Edit HelloController.java
    package com.firstProgram.web;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import java.io.IOException;
    
    @Controller
    public class HelloController{
    
    	@RequestMapping (value="/hello.asik", method=RequestMethod.GET)
        public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            return new ModelAndView("pages/hello");
        }
    }
    
  7. Testing aplikasi anda. http://localhost:8080/firstProgram/hello.asik. Seharusnya tidak ada perubahan pada tampilan nya, yang berubah hany konfigurasi di belakang layarnya saja.
Advertisement

Spring Web MVC – Quick Start with Eclipse (Episode 1)


Sebelum anda mulai mengikuti tutorial di bawah, ada beberapa hal yang harus dipersiapkan:

  1. Tau cara Start New (Dynamic Web) Project menggunakan Eclipse. Jika belum tahu silahkan baca artikel ini.
  2. Download beberapa jar yang dibutuhkan:
  • spring-2.5.6.jar (untuk contoh ini saya masih menggunakan versi 2.5.6) – download disini
  • spring-webmvc-2.5.6.jar, download disini.
  • commons-logging.jar. download disini.

Ketiga jar diatas adalah minimal untuk memulai membuat Web menggunakan Spring MVC. Tutorial lainnya menggunakan Spring MVC dapat dengan mudah anda jumpai di internet, untuk tutorial yang saya buat ini – saya usahakan mudah dimengerti untuk pemula yang belum pernah menggunakan framework dalam pemrograman nya.

Agar pembelajaran lebih mudah – saya coba tampilkan dulu hasil akhir yang diinginkan. Perhatikan gambar di bawah:

To the point saja. Silahkan ikuti langkah-langkah di bawah:

  1. Jalankan aplikasi Eclipse anda. (Pada contoh ini saya menggunakan Eclipse 3.4.0)
  2. Buat New Project dengan nama firstProgram
  3. Buat package com.firstProgram.web (untuk selanjutnya Class Controller akan dimasukkan ke dalam package ini.)
  4. Edit web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4"
     xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
     <display-name>firstProgram</display-name>
    
     <servlet>
     <servlet-name>tjong</servlet-name>
     <servlet-class>
     org.springframework.web.servlet.DispatcherServlet
     </servlet-class>
     <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
     <servlet-name>tjong</servlet-name>
     <url-pattern>*.asik</url-pattern>
     </servlet-mapping>
    
     <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
    </web-app>
    
  5. Copy kan 3 buah jar yang sudah anda download ke dalam folder /WEB-INF/lib
  6. Perhatikan pada web.xml, disitu anda sudah menulis nama servlet anda adalah tjong, yang kebetulan adalah nama saya. :p dan menggunakan class org.springframework.web.servlet.DispatcherServlet. Pada spring, adalah suatu keharusan untuk membuat file xml dengan format nama <nama servlet yang di deklarasikan>-servlet.xml, fungsinya adalah mengatur settingan servlet anda.
  7. Buat file dengan nama tjong-servlet.xml di dalam folder WEB-INF
    <?xml version="1.0" encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:context="http://www.springframework.org/schema/context"
     xmlns:p="http://www.springframework.org/schema/p"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    
     <!-- the application context definition for the springapp DispatcherServlet -->
    <bean name="/hello.asik" class="com.firstProgram.web.HelloController"/>
    
    </beans>
    
  8. Buat folder pages di dalam folder WebContent. Untuk selanjutnya setiap file jsp yang anda buat sebaiknya disatukan di dalam folder ini.
  9. Buat file hello.jsp di dalam folder pages
    <html>
     <head><title>Example :: First Spring MVC Application</title></head>
     <body>
     <h1>Example - Spring Application</h1>
     <p>For my nakama.</p>
     </body>
    </html>
    
  10. Terakhir adalah membuat class Controller, buat file HelloController.java pada package com.firstProgram.web
    package com.firstProgram.web;
    
    import org.springframework.web.servlet.mvc.Controller;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import java.io.IOException;
    
    public class HelloController implements Controller {
    
     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
    
     System.out.println("Andreas");
     return new ModelAndView("pages/hello.jsp");
     }
    
    }
    
  11. Coba jalankan aplikasi anda pada server.  Di address bar masukkan alamat berikut: http://localhost:8080/firstProgram/hello.asik.  Hasilnya kira-kira adalah seperti ini.

Daftar Pusataka:

  1. Spring MVC step by step. link

NOTE: mohon maaf sebelumnya karena ada kesalahan pengetikan yang cukup fatal pada saat publish Dec 17, 2010, Dan sudah diperbaiki per tanggal Dec 20, 2010.

Stupidity I need a hole to hide


Baru-baru ini saya mulai lagi belajar dari awal – mengenai Spring MVC,  untuk memperdalam ilmu yang telah saya miliki. Mengenai topik ini saya pernah diberikan quick tutorial dari Senior saya di dunia kerja, yah karena yang namanya Senior – ilmunya pasti sudah jauh diatas saya, apalagi saya masih terhitung newbie di dunia JAVA. Qucik tutorial nya sangat bagus sekali, tapi biar lebih pede, ada perasaan ingin belajar lagi dari awal untuk memperkuat dasar-dasar nya.

Saya mengikuti Tutorial dari Spring, tentang Spring MVC step by step. Satu chapter terlewati, 2 chapter, 3 chapter. Hmm… Lumayan juga saya mulai belajar dari awal lagi, karena ternyata ada beberapa spot yang sempat saya miss. Dengan belajar lagi, sekarang mulai mendapatkan pencerahan kembali.

Lalu saya mulai merambah ke chapter-4. Disini mulai membahas tentang penggunaan file properties di dalam project. Karena saya sedikit memodifikasi contoh yang diberikan, jadi tidak mengikuti sama persis seperti yang dicontohkan dengan tutorial. Begitu saya coba menerapkan file properties ke dalam Project, selalu muncul error seperti ini, ResourceBundle [messages] not found for MessageSource. Selama hampir satu hari saya mencari solusi nya di internet. Mulai dari kata kunci – “input properties file in eclipse”, “set classpath in eclipse”, dan sebagainya. Semua solusi yang saya temukan saya coba, tapi tidak ada yang berhasil.

Ok.. I’m a bit hopeless now, jadi saya membutuhkan kecanggihan dari Paman Google untuk mencarikan solusi untuk saya. Copy Paste kan error message yang muncul, lalu search. Result yang pertama keluar adalah link di bawah ini:

http://forum.springsource.org/archive/index.php/t-16015.html

Terimakasih untuk yang telah memposting thread di atas, andalah sumber inspirasiku. Berikut saya lampirkan percakapan yang terjadi diatas:

belaran:

Hi !

I’m still experimenting some features of the Spring Core container and the App Context.

I made a simple AWT app as a test and i wish to display with it a message from my bundle , but on run time here the log i get :

2005-06-28 10:25:29,272 WARN [org.springframework.context.support.ResourceBundl eMessageSource] – <ResourceBundle [AO] not found for MessageSource: Can’t find bundle for base name AO, locale fr_FR>

with the following config.xml :

Andreas Senft:

If you locate the file directly under “src” (or any other source folder) Eclipse will copy it to “classes”. So it will be in the classpath on execution.

belaran:

I have already tried this but i got the same message. I placed the AO and AO_fr_FR in the src directory ( default package) and inside the package that really use it…

But anyway , i got the same “warning”… 😡

Andreas Senft:

Ah, now I see it. The file extension “.properties” seems to be missing for your resource bundles.

It has to be AO.properties and AO_fr_FR.properties.

belaran:
😕

ok…

Just one last question :

“Do you know a hole deeply enough for me to hide forever ?”

Yuupp. The same thing is happen to me. :p
Help. I need a hole to hide myself.

Eclipse Quick Start Tutorial


Hi.. Saya masih newbie di dunia Java, baru mulai berkecimpung kira2 satu tahun yang lalu. Dan sepertinya mulai tertarik dengan dunia Java. Jadi sebagai permulaan saya akan mencoba membuat beberapa tutorial mengenai Java.

Tutorial ini dibuat untuk anda yang belum mengenal Java dan ingin memulai belajar How to start Java Programming menggunakan Eclipse. Saya akan mencoba memberikan contoh bagaimana cara membuat sebuah web dengan menggunakan IDE Eclipse 3.4.

Sebagai permulaan anda tentu saja membutuhkan beberapa tools yang harus anda download:

1. JDK – bisa anda unduh di http://java.sun.com/javase/downloads/index.jsp

2. Eclipse – bisa anda unduh di http://www.eclipse.org/downloads/

Jangan lupa, karena kita akan membangun sebuah web, maka pilih lah package yang meng-include kan Web Applications di dalamnya.

3. Tomcat – bisa anda unduh di http://tomcat.apache.org

Untuk JDK jangan lupa untuk menambahkan JAVA_HOME ke dalam PATH anda, begitu juga dengan TOMCAT jangan lupa menambahkan CATALINA_HOME ke dalam PATH. Untuk menambahkan PATH pada OS Windows bisa membaca tutorial manajemen-path pada blog saya sebagai referensi.

Sekarang langsung saja kita mulai membuat web.

Pertama-tama yang harus anda lakukan adalah jalankan Eclipse yang sudah anda download. Lalu set dimana Workspace anda. Workspace (Ruang Kerja) biasanya adalah tempat anda menyimpan project-project yang sudah anda buat dan disinilah eclipse akan

menyimpan informasi.

Lalu hal kedua yang harus anda lakukan adalah create new project. Karena kita akan membangun sebuah web, maka jenis project yang harus anda pilih adalah Dynamic Web Project. Langkah yang bisa anda lakukan ada 2, yaitu:

1. File – New – Others, Lalu pilih Web – Dynamic Web Project

atau

2. Pada Tab Package Explorer, klik kanan, New – Others, Lalu pilih Web – Dynamic Web Project

Langkah berikutnya:

Isikan nama project. Sebagai contoh kita isikan saja “first“.

Lalu pada target runtime klik new, pilih versi Tomcat yang telah diunduh, klik next, lalu klik browse, masukkan address tempat anda menyimpan Tomcat. Klik Finish, lalu biarkanlah pilihan yang lain tetap default saja.

new server runtime environment

new server runtime environment

Jika sudah maka di layar anda akan tampil seperti berikut:

first - new

Jika ada perbedaan coba anda ubah perspektif pemrograman anda menjadi Java EE, posisinya ada di sudut kanan atas.

Java EE

Langkah berikutnya coba create file index.html pada folder WebContent. Cara yang paling mudah adalah klik kanan folder WebContent – New – File. Lalu ketikkan index.html, kemudian klik finish. Salin code berikut

<html>
<head>
<title>
First Example
</title>
</head>
<body>
Hello World!!
</body>
</html>

Yup.. Memang ini adalah contoh yang sederhana sekali. Karena memang tujuan dari tutorial ini adalah Quick Tutorial, jadi tidak perlu code yang terlalu rumit. 😉

Langkah selanjutnya coba anda buka web.xml. Posisi file ini ada di first – WebContent – WEB-INF – web.xml. Sebagai informasi, untuk pemrograman web dengan menggunakan JAVA, web.xml adalah core file yang harus/ pasti akan anda setting.

<?xml version="1.0" encoding="UTF-8"?></code>
<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>first</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

Pada code di atas dijelaskan bahwa file-file index.html, index.htm, index.jsp dan sebagainya akan dipanggil begitu aplikasi ini diakses. Kita sudah membuat file index.html, jadi file ini yang nantinya akan dipanggil begitu aplikasi ini diakses.

Selanjutnya kita akan coba menjalankan aplikasi yang telah kita buat. Caranya dengan meng-klik kanan project first, sekali lagi saya tekankan, yang di klik kanan adalah kata “first” pada Tab Package Explorer.
Run As – Run on Server.

Run on Server

Run on Server

Pilih Server Tomcat yang ada. Lalu klik Finish. Maka di layar IDE Eclipse anda akan tampil page seperti berikut.

Result

Result

Lalu jika anda ingin menggunakan server yang terpisah. Anda dapat meng-export aplikasi anda menjadi .war file. File .war inilah yang akan anda taruh di server untuk dijalankan.
Sekian penjelasan dari saya, semoga bermanfaat.

PS: mengenai cara penggunaan framework, jsp , dan sebagainya tidak saya jelaskan pada tutorial ini.

Eclipse Install Maven2 Plug-in


Pendahuluan

Artikel ini saya tulis untuk para newbie yang baru menggunakan IDE Eclipse untuk memprogram JAVA, khususnya dalam penggunaan Framework Maven2 pada Eclipse. Mungkin sebagian dari para pembaca bahkan tidak mengetahui apa sebenarnya kegunaan Framework Maven2 ini. Dalam artikel ini saya akan mencoba menjelaskan dengan cukup singkat dan mudah dimengerti apa sebenarnya Framework Maven2 ini.

Isi

Maven2

Maven adalah sebuah software dan tool yang komprehensif untuk project management. Konsep dasar dari Maven adalah Project Object Model (POM), dimana Maven dapat membangun, membuat laporan, dan dokumentasi dari sebuah project. Atau secara tidak langsung kita dapat mengatakan bahwa Maven adalah sebuah framework yang bertindak sebagai repository project kita. Untuk dokumentasi dan keterangan lebih lanjut mengenai Framework Maven2 ini sendiri anda dapat langsung mengunjungi situs resminya di :

http://maven.apache.org/

Eclipse

Eclipse adalah salah satu contoh IDE yang dapat digunakan untuk membangun sebuah program JAVA. Bagaimana cara menambahkan Maven2 sebagai salah satu plug-in pada Eclipse?

Langkah-langkah yang harus anda lakukan adalah:

  1. Menginstall plug-in Subclipse
  2. Menginstall plug-in Mylyn
  3. Menginstall plug-in AspectJ Development Tool
  4. Menginstall plug-in Web Tool Platform
  5. Menginstall plug-in m2eclipse (Ini adalah plug-in Maven2 yang sebenarnya)

Cara untuk menginstall plug-in sangatlah mudah, cukup ikuti langkah-langkah berikut:

  1. Jalankan Eclipse
  2. Select Help > Software Updates > Find and Install > Remote Site. (Untuk Eclipse 3.3 kebawah), Select Help > Software Updates > Available Software > Add Site. (Untuk Eclipse 3.4)
  3. Masukkan url dari plug-in yang anda inginkan
  4. Click item yang ingin anda install, Next
  5. Eclipse akan menentukan item2 mana saja yang available dengan Eclipse saat itu.
  6. Jika sudah click Finish dan Eclipse akan mendownload secara Automatis

Next –> Creating Project using Maven2