2010/7/6 Mudzakkir Toha <[email protected]>
>
>
> [Attachment(s) from Mudzakkir Toha included below]
>
> Author blog tersebut memposting hal ini pada bulan 3 tahun 2010.
> ExtJS and Spring MVC Framework: CRUD DataGrid Example
> Posted on : 22-03-2010 | By : Loiane | In : ExtJS, Grid
> Saya kurang tahu apakah postingan tersebut uptodate atau tidak. Mungkin
> ada benarnya bahwa postingan itu out of date.

Walaupun postingnya baru, bisa aja dia pakai library atau teknik lama.
Contohnya ini :
http://www.theserverside.com/tutorial/Mapping-Columns-and-Mapping-Files-with-Hibernate-35
20 Juni 2010, tapi coding Hibernate pakai XML.

Saya sudah lihat source codenya Loiane, berikut URLnya :

1. Controller: yang menerima request dari ExtJS
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/web/ContactController.java

2. Controllernya Loiane cuma forwarder aja dan gak ngapa2in.
Dia akan menyuruh Service untuk bekerja

3. Ini class Service
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/service/ContactService.java
Service akan mengkonversi dulu JSON menjadi object Contact menggunakan Util.
Setelah itu baru disave menggunakan Dao.

4. Ini Util
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/util/Util.java

5. Ini Dao
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/dao/ContactDAO.java

>
> suatu record tanpa merefresh halaman.

Refresh atau tidak refresh tidak ada hubungannya dengan HTTP Get.

> Maaf kak, bisa dijelaskan tidak, konsep nya?? Bisa digambarkan tidak??
> Jika memakai JSP biasa kan jika ingin men-delete saja, misalkan maka
> yang dilakukan adalah:
> mengirimkan ID dari suatu record.
> Setelah dikirim, form yang akan memproses meng-get ID yang dikirimkan,
> lalu proses hapus record.
> Setelah itu, me-redirect ke suatu form yang lain, biasanya adalah List
> dari record yang telah dihapus.

Sama aja sebetulnya, cuma bedanya, setelah delete, bukan redirect ke
halaman lain, melainkan langsung aja return String ok atau error.
Di kodenya Loiane, begitu klik tombol Delete, kode ini akan dijalankan :
http://github.com/loiane/extjs-crud-grid/blob/master/WebContent/js/crud-grid.js#L137

Dia akan memanggil method deletenya Store, yang mana akan mengakses
URL contact/delete.action
http://github.com/loiane/extjs-crud-grid/blob/master/WebContent/js/crud-grid.js#L27

Ini akan menjalankan HTTP Request, yang akan diterima method delete controller
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/web/ContactController.java#L75

Kemudian dilempar ke class Service di baris 82
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/web/ContactController.java#L82

Ini method di class service
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/service/ContactService.java#L75

Setelah diambilin id yang mau didelete menggunakan Util di sini
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/util/Util.java#L84

kemudian didelete menggunakan dao
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/service/ContactService.java#L83

Ini kode di dao untuk mendelete.
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/dao/ContactDAO.java#L53

Setelah delete, set pesan sukses di controller
http://github.com/loiane/extjs-crud-grid/blob/master/src/com/loiane/web/ContactController.java#L85
Lalu return sebagai JSON, jadinya seperti ini
{
  success: true
}

Ini dibaca sama ExtJS, kalau error dia display msg, kalo sukses diam saja.


> Bisa tolong digambarkan?????? Bagaimana mungkin diagram yang
> menggambarkan proses CRUD dengan Javascript??

Nah, sudah saya jelaskan, coba kamu yang gambar, trus dishare ke kita semua.
>
> Sepaham saya, jika memakai javascript itu, kita melakukan Get pada saat
> akan memasuki halaman, setelah masuk, maka tidak akan ada get lagi.
> Misalkan aplikasi FB yang lumayan memakai javascript, setelah kita
> memasuki profile kita (melakukan GET), maka setelah masuk form tersebut
> kita bebas melakukan :
> Create Read Update Delete Status kita.
>

Nah, untuk CRUD ngirim data ke server gak?
Kalo ngirim, gimana caranya kalo gak pakai GET/POST?

> Nah, kembali ke kasus ini tadi, misalkan ada sebuah form dengan
> javascript. maka controller yang akan menangani CRUD tersebut apakah
> menggunakan Get???? Misalkan ketika update saja. Atau delete. Apakah hal
> itu termasuk Get?

Ini namanya belum mengerti konsep HTTP Protocol.
Setiap request ke server menggunakan protokol HTTP ya pasti
menggunakan salah satu command GET,POST,PUT, dsb
Coba baca2 di sini dulu :
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

>
> Lalu kasus ini itu solusinya bagaimana kak???
> Saya juga mencoba untuk saya rubah view-nya menjadi item/view. Project
> yang tadinya sudah bisa, kok menjadi error juga???
> Menurut saya ini adalah kasus karena penamaan yang menggunakan special
> character.
> Lalu saya mengubah nama viewnya menjadi
> itemView
> Saya coba lagi...
> Menunggu sebentar, akhirnya adalah:
>
> Alhamdulillah bisa.
>
> Result saya : kasus ini adalah karena penamaan view yang tidak memenuhi SNI 
> sehingga "jangan memasukkan bom ke dalam rumah Anda, ya..."
> Source code aplikasi yang sengaja saya buat salah (menggunakan penamaan 
> item/view) saya upload di sini dengan nama file : ExtJSCRUDGridSalah
>
> Source code aplikasi yang sudah saya rubah (sudah jadi) menggunakan penamaan 
> itemView saya upload di sini dengan nama file : extjs-crud-grid
>

Ya sudah kalo item/view tidak bisa ya jangan dipaksa.
Memangnya ada keharusan pakai nama itu?

Tapi sebaiknya sih jangan pakai lagi JsonView.
Jackson lebih bagus
http://jackson.codehaus.org/

Ini contoh cara pakainya
http://blog.anthonychaves.net/2010/02/01/spring-3-0-web-mvc-and-json/


--
Endy Muhardin
http://endy.artivisi.com
Y! : endymuhardin
-- life learn contribute --

Kirim email ke