जेएसएफ एमवीसी ढांचे में एमवीसी कौन से घटक हैं?


जवाबों:


150

यह देखने के बिंदु पर निर्भर करता है (सज़ा का इरादा)।

बड़े वास्तु चित्र में, आपका अपना JSF कोड V है :

एम - व्यापार डोमेन / सेवा परत (जैसे EJB / JPA / DAO)
V - आपका JSF कोड
C - FacesServlet

डेवलपर चित्र में, वास्तु V नीचे के रूप में विभाजित है:

एम - एंटिटी
वी - फेसलेट्स / जेएसपी पृष्ठ
सी - प्रबंधित बीन

छोटे ग्राहक चित्र में, डेवलपर V नीचे के रूप में विभक्त है:

M - JSF घटक ट्री
V - रेंडर किया गया HTML आउटपुट
C - क्लाइंट (वेबब्रोसर)

अभी तक छोटे जावास्क्रिप्ट चित्र में, क्लाइंट V नीचे के रूप में विभाजित है:

M - HTML DOM ट्री
V - विज़ुअल प्रस्तुति
C - इवेंट श्रोता फ़ंक्शंस (एंड्यूसर इंटरैक्शन और अजाक्स)

तो यह मूल रूप से एक M (M (M (MVC) C) C) C;) है

ध्यान दें कि कुछ शुरुआत और यहां तक ​​कि कुछ-हर बुनियादी ट्यूटोरियल ट्यूटोरियल / कॉपी / प्रबंधित बीन में इकाई के गुणों को समतल करते हैं, जो प्रभावी रूप से नियंत्रक को एक मॉडल बना देगा। यह कहने की जरूरत नहीं है कि यह खराब डिजाइन है (यानी साफ एमवीसी डिजाइन नहीं)।

निम्नलिखित उत्तरों में कोड स्निपेट सही MVC दृष्टिकोण का वर्णन करता है:

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

यहां छवि विवरण दर्ज करें


+1 दोनों दर्शन से पूरी तरह सहमत हैं, आम तौर पर यह बड़े आर्क के साथ अधिक होता है। वास्तविक समय परियोजनाओं में देखें।
जिगर जोशी

2
सज़ा नहीं मिली, अभी भी एक upvoat है
Nick Russler

@JeffLee मेरे काम पर, हम इसे प्रबंधित सेम के रूप में देखते हैं xHTML दृश्य को नियंत्रित करते हैं। प्रबंधित बीन्स मॉडल कोड से बात करने और देखने की ज़रूरतों के आधार पर संस्थाओं को बचाने के लिए बात कर सकते हैं।
djikybb

5
@ जेफ: यह केवल तभी है जब आप इसमें मॉडल गुणों को मिलाते हैं। जैसे, <h:inputText value="#{register.username}">इसके बजाय उपयोग करना <h:inputText value="#{register.user.name}">
बालुसक

@ जिगर के एक के जवाब के लिए पूरी तरह से इस जवाब से सहमत हैं। IMO, प्रबंधित बीन्स एक मॉडल से बहुत अधिक हैं। वे FacesServlet के विस्तार की तरह हैं, जहां सभी इंटरैक्शन होते हैं। इसके अलावा वे राज्य को धारण करने में सक्षम हैं, लेकिन एक एम
एक्सट्रीम बाइकर

36

एम ओडेल आपका होगाManagedBean

V iew होगा jsp, XHTML(अच्छी तरह से आप यहाँ विभिन्न विचारों को समायोजित कर सकते हैं)

सी ontroller होगाFacesServlet

अद्यतन, आशा है कि यह चित्र और अधिक मदद करता है

यहां छवि विवरण दर्ज करें


4
+1, समझ में आता है, हालांकि मैं कहूंगा कि आपका मॉडल एंटिटीज है (यदि आपके पास कोई है) और नियंत्रक प्रबंधित बीन्स (FacesServlet के अलावा) है
शेरविन असगरी

@ जिगर अच्छी तरह से, अगर FacesServletमैं इसे विस्तार नहीं कर सकता से एक नियंत्रक है। मेरे अपने नियंत्रक नहीं हो सकते ... मैं शेरविन के साथ सहमत हूँ कि प्रबंधित बीन्स नियंत्रक है। शेरविन, अपने स्वयं के वैकल्पिक उत्तर पोस्ट करने के बारे में कैसे?
yegor256

1
यह अंडरकवर है FacesServletजो नियंत्रित कर रहा है।
जिगर जोशी

@ जिगर विकिपीडिया का कहना है कि "एक नियंत्रक उपयोगकर्ता से इनपुट स्वीकार करता है और उस इनपुट के आधार पर क्रियाओं को करने के लिए मॉडल और व्यूपोर्ट को निर्देश देता है।" मुझे शक है कि FacesServlet "मॉडल को निर्देश देता है", क्या यह?
तुगोर 256

4
अंडरकवर फेससेर्वलेट अनुरोध, सत्र, अनुप्रयोग संदर्भ से सभी डेटा (ऊपर की परत पर इसे बीन कहा जाता है) प्राप्त करता है और इसे संसाधित करता है।
जिगर जोशी

4

चेहरे सर्वलेट चेहरे जीवन चक्र का प्रबंधन करता है तो इस अर्थ में कि यह आपके अपने कोड के साथ संयुक्त नियंत्रक है जिसे प्रत्येक जीवन चक्र चरण के दौरान कहा जा सकता है

http://www.java-samples.com/images/jsf-lifecycle.gif


-1

जावा सर्वर फेस एक MVC वेब फ्रेमवर्क है जहां MVC घटक निम्नानुसार हैं,

  1. मॉडल - यह प्रबंधित मैन क्लास है जो @ManagedBean के साथ एनोटेट किया गया है, जिसमें डेटा और संबंधित गेटर्स और बसने के गुण हैं। प्रबंधित बीन वर्ग में व्यावसायिक तर्क भी हो सकते हैं। इनको बैकिंग बीन्स के रूप में भी जाना जाता है, जिसमें अनुरोध, सत्र, आवेदन जैसे विभिन्न दायरे हो सकते हैं।

  2. देखें - ग्राहक को .xhtml फाइलों को दिखाया गया यूजर इंटरफेस। यह प्रबंधित बीन्स से डेटा प्राप्त करता है और इसे प्रतिक्रिया के रूप में प्रस्तुत किया जाता है।

  3. नियंत्रक - javax.servlet.webapp.FacesServlet केंद्रीयकृत नियंत्रक वर्ग है जो मूल रूप से एक सर्वलेट है। जेएसएफ में आने वाला कोई भी अनुरोध सबसे पहले FacesServlet कंट्रोलर के पास जाता है। जेएसपी के विपरीत जिसमें हम अपने स्वयं के नियंत्रक वर्ग लिखते हैं, जेएसएफ में नियंत्रक सर्वलेट फ्रेमवर्क का एक निश्चित हिस्सा है और हम इसे नहीं लिखते हैं।

MVC प्रवाह-

यहां छवि विवरण दर्ज करें


यह 36 अपवर्तित प्रश्न के समान है। यदि आपको लगता है कि उत्तर को और अधिक स्पष्ट किया जा सकता है, तो कृपया इसे संपादित करें
कुक्टेलजे

@Kukeltje मेरा मानना ​​है कि मेरे उत्तर में केवल एमवीसी घटकों के नामकरण के बजाय अधिक स्पष्टीकरण है।
हेतल राच

बहुत कम स्पष्टीकरण ... 1: चूंकि वास्तव में 'युक्त डेटा' सबसे अच्छी चीज नहीं है (संस्थाओं में होना चाहिए), व्यवसायिक, सबसे अच्छी चीज नहीं है क्योंकि ये सेवाओं में होनी चाहिए (सबसे अपवर्जित उत्तर में अतिरिक्त लिंक देखें) ), 2: बहुत अधिक नहीं 3: थोड़ा अधिक पाठ लेकिन दूसरे उत्तर की छवि को गायब करना जो आपके द्वारा जोड़े गए पाठ की तुलना में अधिक स्पष्ट करता है ...
कुक्टेलजे

@Kukeltje धन्यवाद, लेकिन मैं सिर्फ JSF के लिए एक शुरुआत हूँ।
हेतल राछ

कोई दिक्कत नहीं है। मैं इसे लंबे समय से बड़ी सफलता के साथ उपयोग कर रहा हूं। बाए स्कोल्त्ज़ और अर्जन थाइज्स द्वारा जावा ई 8 और जेएसएफ पुस्तक पर अपने हाथ पाएं। महान पढ़ा और ट्यूटोरियल, लेकिन यह भी पढ़ें> Stackoverflow में 25 upvoted Q / A उनके अस्तित्व को याद करते हैं और
jsf
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.