أفضل طريقة لتعديل طراز بي في الربيع MVC إذا ما يهمني اللجنة الأولمبية الدولية

StackOverflow https://stackoverflow.com/questions/167609

سؤال

وأنا بناء تطبيق باستخدام الربيع MVC. أريد أن إجراء تغييرات معينة لبلدي نموذج لكل وحدة تحكم في التطبيق. على وجه الخصوص، أريد أن إدراج بعض بيانات إضافية إلى النموذج الذي سيكون حاضرا لجميع صفحات التطبيق.

ويمكن أن أفعل هذا بعدة طرق: مجرد إضافة البيانات في نهاية كل وحدة تحكم، واستخدام فئة فرعية من نموذج يضيف البيانات الخاصة بي اضافية، واستخدام فئة فرعية من ModelAndView التي يلتف بلدي نموذج، استخدم فئة فرعية من VelocityView التي يلتف نموذج قبل استخدامه ... أنا متأكد من أن هناك خيارات أخرى.

ولكن لدي "الأناقة" عقبة: أنا لا أريد لكتابة التعليمات البرمجية في كل وحدة تحكم، وأنا أريد هذا السلوك المحددة في <لأ href = "http://en.wikipedia.org/wiki/Don ٪ 27t_repeat_yourself "يختلط =" نوفولو noreferrer "> وفقط واحد واحد مكان. من الناحية المثالية، سوف تسيطر عليها ملفي الفول التكوين اللجنة الاولمبية الدولية.

هل لديها توصية كيفية تحقيق هذا رائع؟

هل كانت مفيدة؟

المحلول

والجوانب هي مقاربة جيدة، ولكن الربيع MVC يجعل الأمر أسهل - يمكنك تحديد <لأ href = "http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html # MVC-handlermapping اعتراضية "يختلط =" نوفولو noreferrer "> HandlerInterceptor الذي سيتم استدعائه قبل أو بعد كل مرة يتم التعامل مع الطلب. في طريقة HandlerInterceptor postHandle (في صفك التي تطبق الواجهة HandlerInterceptor) يمكنك إضافة البيانات إلى ModelAndView. يمكنك تحديد أي معالجات يجب أن يتم اعتراضها في ملف التكوين الخاص بك.

نصائح أخرى

هل يمكن أن نلقي نظرة على استخدام الجوانب. الربيع حتى لديه اوب التمديد التي يمكن استخدامها .

وباختصار أن أحد الجوانب تسمح لك لتحديد كود مرة واحدة من شأنه أن ثم الحصول على "نسج" في الفصول الدراسية إما عند تجميع الطبقات أو عندما يتم تحميلها من قبل classloader. انها الاشياء متقدمة نسبيا وليس الشيء الأكثر بديهية للمبرمجين جديد لالتقاط، ولكن يقصد من أجل حل المشكلة بالضبط كنت في اشارة الى.

وأنا قد أكون مخطئا، ولكن أظن أنك قد وصفت الاحتياجات الخاصة بك بشكل غير صحيح.

ويبدو أنك قائلا "أريد بعض البيانات التي يمكن ان تضاف إلى النموذج الخاص بي، على كافة وحدات تحكم".

وأظن أن تقصد "أريد أن يكون بعض البيانات متاحة للجميع وجهات النظر".

إذا شكوكي صحيحة، ثم إضافة البيانات لك نموذج يلوث النموذج الخاص بك وتنتهك مبدأ المسؤولية احد. هذا ينطبق بشكل خاص إذا كان نفس البيانات التي يمكن ان تضاف إلى العديد من النماذج. كن حذرا أن لا فقط باستخدام النموذج الخاص بك ك "الناقل" مريحة من البيانات - التي لا تملك بيانات حقا أي علاقة مع النموذج

وباعتراف الجميع، وأنا لست على دراية تماما مع الطريقة الربيع MVC للقيام بهذه الأمور، ولكن مثالا أكثر تفصيلا لما كنت تحاول تحقيق قد تسمح لمناقشة أكثر استنارة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top