Persiapan:
- Tau cara Start New (Dynamic Web) Project menggunakan Eclipse. Jika belum tahu silahkan baca artikel ini
- 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:
- Anda (client) merequest alamat http://localhost:8080/firstProgram/hello.asik
- 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 - 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”
- 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:
- Tambahkan javax.servlet-jstl.jar ke folder lib. link bisa diambil di sini.
- 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
- 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
- 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
- pindahkan folder pages menjadi di dalam folder WEB-INF. (Untuk alas an keamanan).
- 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"); } }
- Testing aplikasi anda. http://localhost:8080/firstProgram/hello.asik. Seharusnya tidak ada perubahan pada tampilan nya, yang berubah hany konfigurasi di belakang layarnya saja.
Mas andreas, saya senang bisa mengikuti tutorial spring ini dr episode awal, tp kenaapa di episode 2 saya msh bingung, pada tahap Edit tjong-servlet.xml kok scriptnya jd komentar, ada yg salah tdk pak. begitupula dengan episode selanjutnya…. thanks
Wah iya maap.. Saya ada yang kurang copy pastenya.
Segera saya perbaiki.
tjong-servlet nya jadi error yah, kurang apa ya !
Bisa dikirimkan error message nya?
Nanti kita coba kupas sama-sama error nya.
tanda error nya sudah hilang bro, kemarin ada komentar merah gitu. ini sy buka lagi sudah hilang.bingung deh.masih newbie ni di java.mohon bimbingannya master.buat postingan framework hibernate master? ky nya penting juga.thanks
master cara buat file view.properties nya gimana yah ? itu jenis nya apa file nya?thank u
Pakai eclipse tinggal di klik kanan, NEW – FILE.
Pakai notepad sama saja seperti membuat text file, lalu pada saat save nya tinggal diganti nama filenya view.properties
master web.xml nya ga di rubah ? ko masih org.springframework.web.servlet.DispatcherServlet.ga mau jalan nih keterangan erronya WARNING: No mapping found for HTTP request with URI [/firs/hello.asik] in DispatcherServlet with name ‘tjong’.file view nya create new-other- file kan yah? terus di kasih nama view.properties.thanks
itu kamu first nya kurang huruf “t” , kamu nulisnya firs/hello.asik.
Jadinya nggak ketemu.
, tjong-xml nya di kasih ini dia kasih warning merah.error.Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-2.5.xsd). For more information, right click
on the message in the Problems View and select “Show Details…”.kira2 kurang apa? thanks.
, dikasih ini tjong-xml nya kasih warning ..Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-2.5.xsd). For more information, right click
on the message in the Problems View and select “Show Details…”
Coba di check lagi.
Saya tulis ulang, full isi tjong-servlet.xml nya.
NOTE: nama file nya harus tjong-servlet.xml ya.. jangan di korting jadi cuma tjong.xml
udah bisa jalan yang bagian kedua terima kasih master, lagi tahap ke tiga , cuma setelah running hasil tampilan ga sesuai di gambar.terus saya submit ga terjadi apa2.kira2 apa yah?
Memang belum sampai ke tahap itu. 🙂
Setelah submit ada proses nanti masih di tahap ke 5.
master untuk tahap 5, itu memang ada file index.jsp, ? ko disaya cuma ada index.html yah? itu ada di mana file index.jsp nya?
yang bener nama filenya index.jsp –> tinggal di rename saja index.html kamu.
udah saya rename master indexnya.cuma waktu running error ga muncul, ane baru tahap 1 di episode 5, belum buat dou nya.erronya note : The full stack trace of the root cause is available in the Apache Tomcat/7.0.32 logs.
——————————————————————————–
no resource found keterangan errornya?
mas sya dah coba, tp hasilnya ga nampil,,,
pesan errornya :
HTTP Status 500 –
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.util.MissingResourceException: Can’t find bundle for base name views, locale en_US
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.util.MissingResourceException: Can’t find bundle for base name views, locale en_US
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1539)
java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1278)
java.util.ResourceBundle.getBundle(ResourceBundle.java:980)
org.springframework.web.servlet.view.ResourceBundleViewResolver.getBundle(ResourceBundleViewResolver.java:264)
org.springframework.web.servlet.view.ResourceBundleViewResolver.initFactory(ResourceBundleViewResolver.java:217)
org.springframework.web.servlet.view.ResourceBundleViewResolver.loadView(ResourceBundleViewResolver.java:186)
org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:159)
org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:78)
org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1215)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1164)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
gmn tuh mas?? hehehe 😀
Haha.. Stupid me..
Gery, saya coba bantu supaya kamu paham dimana errornya.
Coba kamu check di tjong-servlet.xml, disitu ada line yang isinya seperti ini:
p:basename=”views”/>
Nah disitu kan ditulis-nya “views”, jadi yang harus dibuat adalah “views.properties” bukan nya “view.properties”, perbedaan nya hanya di huruf “s”-nya. Kesalahan sederhana, tapi fatal akibatnya.
kok ditulisnya views.properties… padahal di source folder ‘resources’ itukan nama filenya adalah view.properties. Nah saya udah coba pakai kedua-duanya, view.properties dan views.properties hasilnya pun belum nampak mas. pesan erronya pun msh sama..
oiya mas andreas ada ym, minta boleh…hehe
Hi Gery,
Coba servernya di stop dulu lalu di clean.
Kalau mau contact langsung PM saya saja di: andreas.tjong@gmail.com
thanx mass tutorial nya.. saya sudah koding java sebelum nya tapi baru belajar tentang framework2.. 😀
oiyah 1 lagi yang kurang.. tadi saya ikut sempet error.. setelah saya googling ternyata kurang library jstl nya… maklum masih lib tomcat default… bisa di tambahin di blog nya.. di sini donlod nya : http://www.java2s.com/Code/JarDownload/jstl.jar.zip
Oww jstl yah.. Sip thanks. Nanti saya tambahin link nya.
Gan gk bisa…,kasus kayak gery..