2012-11-20 15 views
6

Servlet içindeki yönetilen kapsamlı bir baklaya erişmek istiyorum. Servletler @ViewScoped yönetilen fasulye nasıl erişilir?

Ben benzer soru için aradı ve bu olanları var: diğer tüm kapsamları davranır ama viewscope değil boş bir sonuç

JSF - get managed bean by name vermelidir çünkü Servlet içine uygulanamaz FacesContext.getCurrentInstance() kullanır

how to get beans from view scope

Bunun mümkün olmadığını düşüneceğim, değil mi?

Fasulye kapsamını seans kapsamına değiştirmek için basit bir çözüm var ama bu son bir şans, çünkü hafıza tüketiminden endişeleniyorum.

Son ihtiyacım şudur: yönetim verileri dataTable'da görüntülenen bazı verileri içerir. Aynı sayfa, bu verinin grafik temsilini (zorunlu) içermelidir. Görüntü bir Servlet tarafından üretilebilir, ancak verilere erişmesi veya db'den yeniden yüklenmesi gerekir.

Ayrıca PrimeFaces 2.X'ten <p:graphicImage>'u da denedim, ancak görüşlü fasulye ile uyumlu değil. Herhangi bir öneri?

cevap

6

Bu mümkün değil, hayır. Görünüm kapsamı, normal bir HTTP servlet isteğinde hiçbir yolu olmayan belirli bir JSF görünümüne bağlıdır. Düz bir HTTP sunucu isteği sırasında somut talep kapsamına sahip fasulye erişemezsiniz, her zaman null döndürecektir.

Oturum kapsamı, alabileceğiniz en iyisidir. Özniteliği, uygulama tamamlandıktan sonra sunucu kapsamı içinden kaldırabilirsiniz.

session.removeAttribute("somename"); 
+0

JSF ile ilgili bir soruma sahip olduğum her yerde, size güvenebileceğimi biliyorum. Teşekkürler – Filippo

+0

Rica ederim :) – BalusC

+0

> BalusC şunları söyledi: "Düz bir HTTP sunucu isteği sırasında somut talep belirtilmiş fasulye erişemeyeceğinizi unutmayın ..." Lütfen nedenini açıklar mısınız? Teşekkürler. –

İlgili konular