स्प्रिंग कंट्रोलर वर्ग (@ @ मॉडलअटिबिट > के साथ)
मजबूत>) और एक ही समय में मॉडल तैयार करने के लिए jsp या मॉडल को वसंत और jsp < / em> ? विचार इस से आता है मेरे पास एक नियंत्रक वर्ग है: > @RequestMapping (मान = {"", "/"}, विधि = RequestMethod.GET, params = "mode = create") सार्वजनिक मॉडल और दृश्य शोकेआरपेज (@ModelAttribute ("CreateForm") ApplicationCreateForm प्रपत्र) {रिटर्न customMethod ("कुछ स्ट्रिंग"); }
और मेरे जेएसपी में मेरे पास है:
& lt; jsp: useBean id = "createForm" scope = "request" class = "com.example .ApplicationCreateForm "/ & gt;
मुझे उपयोगकर्ता को उपस्थित होने के लिए जानकारी के साथ फार्म भरने की ज़रूरत नहीं है।
इसलिए जो मैं uderstand से घोषणा की गई है, ApplicationCreateForm एक ही गुंजाइश के साथ दो बार बीन - अनुरोध।
क्या यह एक ही समय में दोनों का उपयोग करने के लिए एक अच्छा डिजाइन अभ्यास है? क्या इसका कोई कारण है? क्या दूसरा घोषणा (jsp में) मुझे अधिक शक्ति देता है, उदाहरण के लिए मॉडल को ओवरराइड करना है या यह अनावश्यक है? क्या दूसरा घोषणा पहले से एक को ओवरराइड करता है जब दोनों मौजूद हैं?
इस कार्यान्वयन में कई चीजें गलत हैं ।
क्या यह एमवीसी है?
अगर जेएसपी मॉडल के बारे में जानता है, हमें नियंत्रक की आवश्यकता क्यों है? चलने वाले इंजन को हटाने और मॉडल का उपभोग करने के लिए जेएसपी का उपयोग करें। लेकिन फिर आवेदन अखंड होगा। मेरा मानना है कि आप ऐसा नहीं चाहते हैं हमारे पास एमवीसी के दो प्रमुख स्वाद हैं I दोनों में, नियंत्रक सामने वाले ऑब्जेक्ट है। यह आदेश प्राप्त करता है, इसे व्याख्या करता है, डेटा परत के साथ काम करता है और मॉडल हो जाता है। यदि आवश्यक हो तो मॉडल को एक दृश्यमॉडल में परिवर्तित कर दिया जाता है और फिर इस ऑब्जेक्ट को देखने के लिए पारित किया जाता है।
क्यों देखें मॉडल?
हम स्क्रीन पर पेजिंग को लागू कर रहे हैं कहें। हम व्यक्तियों की सूची दिखा रहे हैं व्यक्ति आपका मॉडल यहां है लेकिन आपके दृश्य को पृष्ठ संख्या, पेज आकार आदि भी जानना चाहिए। इस प्रकार इस मॉडल में सीधे तौर पर इस मामले में फिट नहीं हो सकता है।
कहें कि स्क्रीन पर दिखाए जाने के लिए हमें कई तालिकाओं से डेटा की आवश्यकता है। यह डेटा किसी तरह से संबंधित है अब आप अलग-अलग मॉडल ऑब्जेक्ट्स को देखने और इसे सभी व्यापारिक तर्कों को करने की अनुमति देंगे? आदर्श रूप से नहीं।
डिजाइन को डीटीओ या व्यूमोडाल या कमांड और प्रश्नों का समर्थन नहीं करना चाहिए?
हम चाहते हैं कि हमारा आवेदन ठीक से तैयार हो। जैसा कि ऊपर बताया गया है, हमें प्रसंस्करण के बाद डेटा देखने या ग्राहकों (आरईएसटी) भेजने की जरूरत है। जब तक हम सिर्फ एक सीआरयूडी सामान नहीं बना रहे हैं तब तक प्रसंस्कृत डेटा आपको डोमेन तक नहीं मैप कर सकता है। क्या होगा अगर आप सीक्यूएस या सीक्यूआरएस को लागू करना चाहते हैं?
अलगाव कहां है, जहां ठोस है?
अगर मेरा विचार व्यापार तर्क तो चल रहा है तो 'एस' कहां है? अगर मॉडल को मॉडल के बारे में पता है और मॉडल में कुछ बदलावों में बदलाव की आवश्यकता है तो 'ओ' कहां है? क्या होगा अगर मैं कमांड (सीक्यूएस) से प्रश्नों को अलग करना चाहता हूं और दो चीजों को अलग से स्केल करना चाहता हूं?
निष्कर्ष निकालना मैं कहूंगा, हां आप ऐसा कर सकते हैं लेकिन यह अच्छा नहीं है यदि आप सभ्य आकार के आवेदन को विकसित कर रहे हैं या आपको लगता है कि यह अंततः एक होगा। मैंने लोगों को ORM से शुरू की जाने वाली मॉडल संस्थाओं का उपयोग करने के लिए नियंत्रक को देखा है। यह काम करेगा लेकिन सवाल यह है कि आप एक अखंड और कसकर युग्मित आवेदन चाहते हैं। मेरे अनुभव के मुताबिक प्रस्तुति तर्क (दृश्य) में नियंत्रक की तुलना में डेटा की बहुत ही भिन्न तर्क और आवश्यकता होती है और वही आपके डेटा एक्सेस परत के लिए चला जाता है।
No comments:
Post a Comment