दिलचस्प पोस्ट
Php में सीएसवी फ़ाइल से बड़े डेटा पढ़ें ViewPager खंड में डेटा ताज़ा करें क्या इस पद्धति का उपयोग करने के लिए स्ट्रिंग को पूर्णांक में कनवर्ट करने के किसी भी साइड इफेक्ट होते हैं नेविगेशन नियंत्रक का उपयोग किए बिना SWrevealViewController जाँच करें कि साइट iframe के अंदर है या नहीं एचटीएमएल कंटेंट को एक बटन के क्लिक पर कैसे मुद्रित करें, लेकिन पेज पर नहीं? बैकरेन्फ़िकेशन इन लेकबीहैंड मैं लेआउट के अंदर सभी विचार कैसे अक्षम कर सकता हूं? व्याख्या करना "स्थिति में` if` फ़ंक्शन से लंबाई> 1 "चेतावनी है जेनरिक के रूप में तेजी से बंद करने के लिए पैरामीटर PHP के HTML DOMDocument के साथ HTML को पार्स करें SimpleDateFormat तक पहुंच को सिंक्रनाइज़ करना कैसे आईओएस एसडीके में एक छाता ढांचा बनाने के लिए? HAX कर्नेल मॉड्यूल स्थापित नहीं है क्या जावा में परिभाषित एक नई लाइन स्थिरता है। सी # में नई लाइन?

जेएसएफ प्रबंधित-बीन्स के विभिन्न प्रकार के बीच भेदभाव करना

मैंने हाल ही में नील ग्रिफिन से इस आलेख को जेएसएफ प्रबंधन-बीन्स के विभिन्न प्रकारों के बीच भेदभाव किया है और यह मुझे अपने आवेदन में विभिन्न बीन्स के बीच अंतर के बारे में सोच रहा था। सारांश को तुरंत सारांशित करें:

  • मॉडल प्रबंधित-बीन: इस तरह के प्रबंधन-बीन एमवीसी डिजाइन पैटर्न की "मॉडल" चिंता में भाग लेते हैं। जब आपको "मॉडल" शब्द दिखाई देता है – डेटा को सोचें जेएसएफ मॉडल बीन एक पीओओओ होना चाहिए जो जावाबीन डिज़ाइन पैटर्न का अनुसरण करता है, जो कि गुणक गुणों को समेकित करता है।

  • मैनेजमैंट-बीन का समर्थन: इस तरह के प्रबंधित-बीन एमवीसी डिजाइन पैटर्न की "देखें" चिंता में भाग लेते हैं। बैकिंग-बीन का उद्देश्य यूआई लॉजिक का समर्थन करना है, और एक जेएसएफ दृश्य के साथ 1: 1 रिश्ते या फेसलेट संरचना में जेएसएफ फॉर्म है। यद्यपि इसमें आमतौर पर जुड़ा हुआ गेटर्स / सेटर्स के साथ जावाबीन-शैली वाले गुण हैं, ये अंतर्निहित एप्लिकेशन डेटा मॉडल के दृश्य – दृश्य के गुण हैं जेएसएफ बैकिंग-बीन्स में जेएसएफ एक्शन लेस्टनर और वैल्यू चेंज लिस्टनर मैनेजमेंट भी हो सकते हैं।

  • नियंत्रक प्रबंधित- बीन: इस तरह के प्रबंधित-बीन एमवीसी डिजाइन पैटर्न की "नियंत्रक" की चिंता में भाग लेते हैं। नियंत्रक बीन का उद्देश्य किसी तरह के व्यावसायिक तर्क को निष्पादित करना है और जेएसएफ नेविगेशन-हेन्डलर को एक नेविगेशन परिणाम वापस करना है। जेएसएफ नियंत्रक-सेम आमतौर पर जेएसएफ क्रिया विधियां (और कार्रवाई नहीं करनेवाला तरीके) हैं

  • मैनेजमैंट-बीन का समर्थन: एमवीसी डिजाइन पैटर्न की "देखें" चिंता में एक या अधिक विचारों से इस प्रकार का बीन "समर्थन" करता है। ठेठ उपयोग के मामले में जेएसएफ एच के लिए एक अर्रेलिस्ट की आपूर्ति है: एक से अधिक जेएसएफ दृश्य में दिखाई देने वाली एक ही मेनू ड्रॉप-डाउन सूची। यदि ड्रॉपडाउन सूचियों में डेटा उपयोगकर्ता के लिए विशेष है, तो बीन सत्र के दायरे में रखा जाएगा।

  • उपयोगिता प्रबंधित- बीन: इस प्रकार की बीन एक या अधिक जेएसएफ दृश्यों के लिए कुछ प्रकार की "उपयोगिता" फ़ंक्शन प्रदान करती है। इसका एक अच्छा उदाहरण एक FileUpload बीन हो सकता है जिसे एकाधिक वेब अनुप्रयोगों में पुन: उपयोग किया जा सकता है।

यह मुझे और पिछले कुछ घंटों के लिए समझ में आया और मैं अपने कोड को पुनर्रचना कर रहा हूं और उपयोगकर्ता लॉगिन के संबंध में निम्नलिखित के साथ आया हूं:

AuthenticationController नियंत्रक नियंत्रक प्रबंधित-बीन का एक उदाहरण है यह अनुरोध-स्कॉड किया गया है और यूज़रनेम और पासवर्ड सेट करने के लिए दो गेटर्स और सेटर्स और दो नेविगेशन विधियों, authenticate और लॉग आउट की सुविधा प्रदान करता है, या तो उपयोगकर्ता को अपने निजी क्षेत्र को सफल लॉगिन पर, या लॉग आउट करते समय वापस मुख्य पृष्ठ पर नेविगेट किया जाता है।

UserBean एक समर्थन प्रबंधित-बीन का एक उदाहरण है यह सत्र-स्कॉड है और User वर्ग का एक उदाहरण प्रस्तुत करता है (जो तब मान्य नहीं है जब आप प्रमाणित नहीं हैं) एक गेटर और सेटर के साथ, और कुछ नहीं।

AuthenticationController पास इस उपयोगकर्ता को एक प्रबंधित संपत्ति ( @ManagedProperty(value = "#{userController.user} private User user; ) है। सफल प्रमाणीकरण के बाद, AuthenticationController उस प्रबंधित उपयोगकर्ता को उस उपयोगकर्ता नाम के साथ वास्तविक उपयोगकर्ता इंस्टेंस के साथ सेट करेगा लॉगिन के लिए इस्तेमाल किया

कोई नई बीन्स प्रयोक्ता को प्रबंधित संपत्ति के रूप में अच्छी तरह से पकड़ ले सकते हैं और डेटा की आवश्यकता को खींच सकते हैं, जैसे कि उदाहरण के लिए समूह सदस्यता, यदि User वर्ग समूह नामों के साथ एक सूची प्रस्तुत करेगा।

क्या इस तरह से चिंताओं के अलग होने के संबंध में जाने का उचित तरीका क्या होगा?

Solutions Collecting From Web of "जेएसएफ प्रबंधित-बीन्स के विभिन्न प्रकार के बीच भेदभाव करना"

यह एक बहुत ही व्यक्तिपरक प्रश्न है मैं व्यक्तिगत तौर पर उस लेख से असहमत हूं और पता चलता हूं कि यह शुरुआतओं को वास्तव में खराब सलाह दे रहा है।


मॉडल प्रबंधित-बीन: इस तरह के प्रबंधन-बीन एमवीसी डिजाइन पैटर्न की "मॉडल" चिंता में भाग लेते हैं। जब आपको "मॉडल" शब्द दिखाई देता है – डेटा को सोचें जेएसएफ मॉडल बीन एक पीओओओ होना चाहिए जो जावाबीन डिज़ाइन पैटर्न का अनुसरण करता है, जो कि गुणक गुणों को समेकित करता है।

मैं पूरी तरह से ऐसा नहीं करूँगा या इसे प्रबंधित बीन नहीं कहूँगा। बस इसे @ManagedBean की संपत्ति बनाएं उदाहरण के लिए एक डीटीओ या जेपीए @Entity


मैनेजमैंट-बीन का समर्थन: इस तरह के प्रबंधित-बीन एमवीसी डिजाइन पैटर्न की "देखें" चिंता में भाग लेते हैं। बैकिंग-बीन का उद्देश्य यूआई लॉजिक का समर्थन करना है, और एक जेएसएफ दृश्य के साथ 1: 1 रिश्ते या फेसलेट संरचना में जेएसएफ फॉर्म है। यद्यपि इसमें आमतौर पर जुड़ा हुआ गेटर्स / सेटर्स के साथ जावाबीन-शैली वाले गुण हैं, ये अंतर्निहित एप्लिकेशन डेटा मॉडल के दृश्य – दृश्य के गुण हैं जेएसएफ बैकिंग-बीन्स में जेएसएफ एक्शन लेस्टनर और वैल्यू चेंज लिस्टनर मैनेजमेंट भी हो सकते हैं।

इस तरह आप प्रबंधित बीन में इकाई के गुणों को डुप्लिकेट और मानचित्रण करते रहें। त्रि – आयामी यह बेमतलब का लगता है। जैसा कि कहा गया है, बस इकाई को प्रबंधित बीन की एक संपत्ति बनाएं और इनपुट फ़ील्ड को #{authenticator.user.name} स्थान पर #{authenticator.username} जैसे सीधे देखें।


नियंत्रक प्रबंधित- बीन: इस तरह के प्रबंधित-बीन एमवीसी डिजाइन पैटर्न की "नियंत्रक" की चिंता में भाग लेते हैं। नियंत्रक बीन का उद्देश्य किसी तरह के व्यावसायिक तर्क को निष्पादित करना है और जेएसएफ नेविगेशन-हेन्डलर को एक नेविगेशन परिणाम वापस करना है। जेएसएफ नियंत्रक-सेम आमतौर पर जेएसएफ क्रिया विधियां (और कार्रवाई नहीं करनेवाला तरीके) हैं

यह @ViewScoped / @ViewScoped वर्ग का वर्णन बहुत सुंदर है क्या घटना श्रोता के तरीकों की अनुमति है या नहीं, यह इस बात पर निर्भर करता है कि वे उस दृश्य के लिए विशिष्ट हैं जो सेम से जुड़ी हुई है और / या उनके काम के लिए बीन की स्थिति पर निर्भर है। यदि वे हैं, तो वे सेम में हैं यदि नहीं, तो वे किसी भी FacesListener अंतरफलक के एक स्टैंडअलोन कार्यान्वयन होना चाहिए, लेकिन निश्चित रूप से प्रबंधित बीन नहीं।


मैनेजमैंट-बीन का समर्थन: एमवीसी डिजाइन पैटर्न की "देखें" चिंता में एक या अधिक विचारों से इस तरह का बीन "समर्थन करता है"। ठेठ उपयोग के मामले में जेएसएफ एच के लिए एक अर्रेइलिस्ट की आपूर्ति है: एक से अधिक जेएसएफ दृश्य में दिखाई देने वाली एक मेनू मेनू ड्रॉप डाउन सूची। यदि ड्रॉपडाउन सूचियों में डेटा उपयोगकर्ता के लिए विशेष है, तो बीन सत्र के दायरे में रखा जाएगा।

ठीक। आवेदन के लिए विस्तृत डेटा जैसे ड्रॉपडाउन सूचियां सिर्फ एक @ApplicationScoped अनुप्रयोग @ApplicationScoped बीन का प्रयोग @ApplicationScoped और लॉग-इन उपयोगकर्ता जैसे सत्र के विस्तृत डेटा के लिए और इसकी वरीयताओं के लिए सिर्फ एक @SessionScoped


उपयोगिता प्रबंधित- बीन: इस प्रकार की बीन एक या अधिक जेएसएफ दृश्यों के लिए कुछ प्रकार की "उपयोगिता" फ़ंक्शन प्रदान करती है। इसका एक अच्छा उदाहरण एक FileUpload बीन हो सकता है जिसे एकाधिक वेब अनुप्रयोगों में पुन: उपयोग किया जा सकता है।

यह मेरे लिए वास्तव में समझ में नहीं आता है बैकिंग बीन्स आमतौर पर एकल दृश्य से जुड़ी होती हैं। यह <f:actionListener> कार्यान्वयन की तरह बहुत अधिक लगता है जो कि <f:actionListener> कमांड घटकों में आपकी पसंद के लिए उपयोग किया जाता है निश्चित रूप से प्रबंधित बीन नहीं।

सही दृष्टिकोण के ठीक होने के उदाहरणों के लिए, यह भी देखें:

  • हमारे जेएसएफ विकी पृष्ठ में हैलो वर्ल्ड उदाहरण
  • इस उत्तर में "बुकस्टोर सीआरयूडी" का उदाहरण
  • इस जवाब में "मास्टर-विस्तार" उदाहरण
  • JSF सेवा स्तर
  • जेएसएफ 2 में संचार