tidak melalui ActionServlet,.. tapi langsung menembak ke halaman
velocity. Lagian kalau semua request sederhana masuk ke ActionServlet
,... bikin struts-config.xml membengkak dan sulit dibaca.
Akhirnya saya akalin solusinya .... bikin command pattern buat setiap
request,.. masuk command yang sudah dibuka sessionnya oleh
HibernateUtil. session di tutup oleh filter di velocity tapi kalau
actionForward tida request ke velocity, command saya akhiri dengan
menutup sesion. Hihihihihi so far so good.
nb: alasan daily salesplan ga diambil Action selain untuk
1 memudahkan desain velocity, niatnya sih berusaha menghindari
ValueObject aka TransferObject sebagai helper alias FAKEOBJECT.
Hehehehhe ini saran om rod jonson sih :D jangan percaya dengan fake
object.
2 Sekaligus ingin memanfaatkan mekanisme persistensi dari Hibernate.
ini kan tujuan dari lazy load.
3 Mengikuti apa yang di jelasin CaveatEmptor :D JSP menggunakan
object graph buat menampilkan relasi menggunakan pattern LocalThread.
Case Closed.
On Fri, 5 Nov 2004 17:30:52 +0700, Monang Setyawan <[EMAIL PROTECTED]> wrote:
>
> Kalau interceptornya ditaruh di dua filter bisa gak ya?
> Jadi hibernate session dibuka sebelum doChain untuk filter ke
> ActionServlet, dan kemudian ditutup setelah doChain() pada filter ke
> VelocityViewServlet. Pada saat membuka, Hibernate session ditaruh di
> HttpRequest sehingga bisa diambil lagi di Action dan di filter untuk
> VelocityViewServlet.
>
> (nb : Ada alasan tertentu kenapa dailySalesplan nggak diambil langsung
> aja di Action?)
>
> On Fri, 5 Nov 2004 14:23:04 +0700, Achmad Arif Rachim
>
>
> <[EMAIL PROTECTED]> wrote:
> > Halo rekan2 pengguna velocity hibernate struts, mohon pencerahannya.
> > Belakangan ini saya mendapatkan permasalahan dengan hibernate pada
> > velocity, untuk pengaksessan object graph. Contoh kasus seperti ini.
> >
> > ada 4 buah POJO yang menampilkan hubungan relasi
> >
> > Account Profile
> > +-----------+ +----------+
> > | accountId | lazy | name |
> > | password | < 1 ------ * > | address |
> > +-----------+ | phone |
> > ^ +----------+
> > |
> > |extends DailySalesplan
> > +-----------+ lazy +------------------------+
> > | salesMan | -----------> | todaySalesAchievement |
> > +-----------+ | todaySalesTarget |
> > +------------------------+
> >
> > Pada velocity saya mencoba untuk menampilkan report Harian salesman,
> > dengan berharap menggunakan mekanisme object graph bertumpu melalui
> > object Salesman. Yang dilakukan dengan cara
> >
> > $!salesman.dailySalesplan.todaySalesAchivement
> > etc..
> > #foreach($profile in $salesman.profile)
> > $!profile.name
> > etc...
> > #end
> >
> > Permasalahan muncul dikarenakan hibernate Session sudah ditutup saat
> > Velocity Servlet mencoba mengakses relasi object graph yang lazy.
> > Sehingga tampilan di halaman velocity yang ada hanyalah text kosong.
> >
> > Sekedar informasi,.. hibernate session dibuka dan di tutup saat struts
> > Action di panggil. Setelah itu barulah velocity servlet dipanggil oleh
> > actionForward.
> >
> > Saya sudah coba bandingkan dengan mekanisme yang ada di sample
> > CaveatEmptor .... menggunakan ThreadLocal pattern untuk mengatur
> > mekanisme Session dan Transaction sebagai interceptor.Akan tetapi
> > karena CaveatEmptor menggunakan standar Servlet untuk FrontController,
> > Filter interceptor (filter untuk menutup session dan traksaksi) khusus
> > ditujukan pada Servlet Controller. Sedangkan velocity dan Struts
> > terdapat 2 buah Servlet utama yang dipanggil secara bergantian ,...
> > ActionServlet struts dan VelocityViewServlet untuk velocity.
> >
> > Kalau interceptor ditempatkan pada ActionServlet menyebabkan object
> > graph tidak dapat diakses oleh velocity servlet(session sudah
> > ditutup). Kalau interceptor ditempatkan pada VelocityViewServlet
> > menyebabkan session tidak akan ditutup sampai actionForward redirect
> > file *.vm. Kalau interceptor ditempatkan pada kedua - duanya
> > menyebabkan POJO tidak akan pernah tersimpan kedalam database secara
> > lengkap,... karena session secara tiba2 tertutup secara bergantian
> > antara velocity dan atau struts!!!!
> >
> > FYI :
> > note : selama ini saya masih manual bikin hibernate session,
> > transaction di setiap businessService ...... tedeious job .... terlalu
> > banyak repetisi blok trycatch dan menyebabkan velocity tidak dapat
> > memanfaatkan mekanisme object graph ..... ('untuk membuat report harus
> > bikin HSQL untuk setiap halaman velocity') ThreadLocal pattern solusi
> > tapi tidak kompetibel dengan Struts velocity .... kira2 apa solusinya
> > ???
> >
> > Thanx in advance.
> >
> >
> > Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke
> > [EMAIL PROTECTED]
> >
> > Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id
> >
> >
> >
> >
> >
> > Yahoo! Groups Sponsor
> >
> > ADVERTISEMENT
> >
> >
> > ________________________________
> > Yahoo! Groups Links
> >
> > To visit your group on the web, go to:
> > http://groups.yahoo.com/group/jug-indonesia/
> >
> > To unsubscribe from this group, send an email to:
> > [EMAIL PROTECTED]
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
>
> --
> Demi masa..
>
>
> Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke [EMAIL PROTECTED]
>
> Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id
>
>
> Yahoo! Groups Links
>
>
>
>
>
Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke [EMAIL PROTECTED]
Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id
| Yahoo! Groups Sponsor | |
|
|
Yahoo! Groups Links
- To visit your group on the web, go to:
http://groups.yahoo.com/group/jug-indonesia/
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
