2010-07-14 11 views
6

Bahar MVC'yi hazırda bekletme ile birlikte kullanma deneyimimden, görünüm oluştururken tembel getirilen koleksiyona hitap ederken ortaya çıkan tembel istisna sorununu biliyorum. Bu saf bahar + hazırda bekleme dünyası, OpenSessionInViewInterceptor veya OpenSessionInViewFilter'u tanıtarak giderir ve böylece istek başına bir hazırda bekleme oturumunu etkinleştirir.Grails'i Kullanırken Görünümde Açık Oturumla ilgilenmeli miyim?

Yani soru şu: Ben bu problemi not yığınlarında ummalı mıyım veya istek üzerine tek oturumluk davranışlar varsayılan olarak etkindir.

Bu, sınıflandırma varsayılanları değilse, lütfen bu davranışı uygulamak için bazı kodlar verin.

Teşekkürler.

cevap

6

Grails, OpenSessionInViewInterceptor'ın özelleştirilmiş bir alt sınıfını kaydeder (WebFlow farkındalığı ekler). Yani bir web isteği bağlamında yapılan her şey açık bir oturuma sahip olacak ve tembel yüklü referanslar ve koleksiyonlar çözülecek.

+0

Görünüm durumu için bir etki alanı örneğini PageScope değişkeni olarak ayarladığımda (taglib'den) ve buna erişmeye çalıştığımda, neden Temsilci başlatma istisnasını alıyorum, proxy hatası veremedi. Oturum hala açık değil, çünkü etiket görünüm durumunun bir parçası olarak oluşturulan gsp (düzen). http://stackoverflow.com/questions/21456784/grails-webflow-error-could-not-initialize-proxy-no-session-when-trying-to-ac –

+1

cevabını verebilir misiniz? detaylar, ancak bu Sitemesh ve sayfa oluşturma sırasına göre yapılmalı. Denetleyici eylemi çalıştırıldıktan sonra, ancak GSP'nin oluşturulmasından önce oturumun kapanacağını düşünüyorum. Genel olarak, bu ve diğer sorunlardan kaçınmak için gerekli tüm verileri iletmek en iyisidir. GSP'de tembel yükleme gerçekleşmesine izin vererek, genel olarak –

+0

numaralı kötü bir uygulama olan bir GSP'den veritabanı istekleri yapıyorsunuz. Sorun şu ki, bazı etki alanlarına düzende erişmem gerekiyor. Bu durumda doğru yaklaşım ne olurdu? –

İlgili konular