2012-11-20 16 views
6

मैं एक सर्वलेट के अंदर एक दृश्य स्कोप प्रबंधित बीन का उपयोग करना चाहता हूं।Servlets से @ViewScoped प्रबंधित सेम तक कैसे पहुंचे?

मैं समान प्रश्न के लिए खोज की है और इन लोगों को मिल गया:

how to get beans from view scope जो FacesContext.getCurrentInstance(), अयोग्य का उपयोग करता है एक सर्वलेट अंदर क्योंकि यह एक अशक्त परिणाम

JSF - get managed bean by name जो अन्य सभी कार्यक्षेत्रों व्यवहार करता है लेकिन viewscope नहीं देना चाहिए

मुझे लगता है कि यह संभव नहीं है, है ना?

सत्र स्कोप में उस बीन स्कोप को बदलने का सरल समाधान है, लेकिन यह आखिरी मौका है क्योंकि मुझे स्मृति खपत से चिंतित है।

मेरी अंतिम आवश्यकता निम्न है: प्रबंधन में डेटा डेटा में प्रदर्शित कुछ डेटा शामिल है। उसी पृष्ठ में उन डेटा के चार्ट प्रतिनिधित्व की छवि (अनिवार्य) शामिल होनी चाहिए। छवि को सर्वलेट द्वारा उत्पादित किया जा सकता है लेकिन इसे डेटा तक पहुंचने या डीबी से उन्हें पुनः लोड करने की आवश्यकता है।

मैंने प्राइमफेस 2.X से <p:graphicImage> को भी आजमाया लेकिन यह दृश्यों के बीन्स के साथ संगत नहीं है। कोई उपाय?

उत्तर

6

यह संभव नहीं है, नहीं। व्यू स्कोप एक विशिष्ट जेएसएफ व्यू से जुड़ा हुआ है, जो एक सादे HTTP सर्वलेट अनुरोध में कोई साधन नहीं है। ध्यान दें कि आप एक सादे HTTP सर्वलेट अनुरोध के दौरान कंक्रीट अनुरोध स्कोप्ड बीन्स तक नहीं पहुंच सकते हैं, वे हमेशा null लौटाएंगे।

सत्र का दायरा सबसे अच्छा है जो आप प्राप्त कर सकते हैं। एक बार जब आप servlet में इसके साथ समाप्त कर लेंगे तो आप सत्र स्कोप से विशेषता को हटा सकते हैं।

session.removeAttribute("somename"); 
+0

जहां भी मेरे पास एक जेएसएफ संबंधित प्रश्न है, मुझे पता है कि मैं आप पर भरोसा कर सकता हूं। धन्यवाद – Filippo

+0

आपका स्वागत है :) – BalusC

+0

> बलुस ने कहा: "ध्यान दें कि आप एक सादे HTTP सर्वलेट अनुरोध के दौरान कंक्रीट अनुरोध स्कॉप्ड बीन्स तक नहीं पहुंच सकते हैं ..." क्या आप कृपया बता सकते हैं क्यों? धन्यवाद। –