سؤال

نظرًا لأن تعقيد مشاريع الويب التي أعمل عليها ، أصبحت الحاجة إلى تضمين بنية MVC أكثر إلحاحًا. يتم تعريف فصول النموذج الخاصة بي جيدًا ، لكن رمز العرض ورمز وحدة التحكم يميل إلى التغلب معًا. لقد كنت أستخدم Ajax ثقيلًا جدًا على الموقع أيضًا (Richfaces jsfunctions في الغالب) مما يجعل الأمور أكثر تعقيدًا قليلاً.

هل وجد أي شخص استراتيجيات جيدة لتنفيذ MVC باستخدام JSF2؟ لا أريد تقديم إطار عمل آخر للمشروع (مثل Spring MVC).

بعض الأفكار حتى الآن ، والتي لم أبدأ في فعلها بعد

  • بالنسبة لصفحة ذات Ajax الثقيلة ، احصل على "عرض" لتذكر علامات التبويب المحددة ، والعناصر المحددة ، وتوفير قوائم البيانات المصفاة ، وما إلى ذلك ...
  • لديك حبة "وحدة تحكم" للتعامل مع الإجراءات مثل التغييرات في النموذج
  • لديك "Command" الفاصوليا التي تذهب بين صفحة JSF ووحدة التحكم. يملأ JSFunction حبة الأوامر بالمعلمات ، والاتصال command.execute() يؤدي إلى استدعاء Bean الأوامر الطريقة الصحيحة على حبة وحدة التحكم لتنفيذ الإجراء. قد تتضمن الحبة "Command" بعض JavaScript ليتم استدعاؤها عند الانتهاء. قد يحدد أيضًا مناطق الصفحة المراد إعادة تقديمها.

أي أفكار؟

تعديل

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

نحن نستخدم JSF 1.2 في الوقت الحالي ، وبالتالي لا يمكننا استخدام الإجراءات/actionlisteners مع المعلمات. على سبيل المثال ، تحتوي الفاصوليا المدارة لدينا على متغيرات مثل m_selectedDate الذي الغرض الوحيد هو إطعام التاريخ المحدد إلى الواجهة الخلفية على المكالمة إلى updateFilteredItemsBasedOnDate(). سيكون من الرائع أن تختفي المتغيرات الإضافية لأنها مؤقتة. يجب أن تساعد JSF 2's EL مع المعلمات ولكنني فضولي إذا كان هناك حل بديل متاح.

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

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

المحلول

عليك أن ترى الطريقة الأفضل لإدارة الفاصوليا ، بدلاً من ذلك ، انظر إلى كيفية استخدام MVC بشكل أفضل في JSF. لأن JSF نفسه يأتي مع MVC في تنفيذ أفضل. لست متأكدًا مما تعنيه بالضبط هنا كطريقة أفضل لتنفيذ MVC.

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

هناك نقاش حول ما إذا كان يجب استخدام Bean for Business Logic أو يجب فصله عن الفول المدارة. هذا كله يتوقف على التطبيق الخاص بك والمجال الخاص بك.

شكرا ، كريشنا

نصائح أخرى

هل تبحث عن أنماط التصميم؟ إذا كنت تبحث عن MVC ، فإن إجابة Balusc كافية ، وإلا تحقق من هذا

http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns.htm

تحقق أيضا هذه

حسنًا ، ربما ما تحتاجه هو بنية ذات طبقات. حتى الآن A MVC Architecure ، هناك المزيد من المخاوف. على سبيل المثال ، يمكنك وضع طبقة أرشفة في العرض ، وطبقات Business Logic و DataAccess ، وتثبيط معظم أنماط تصميم المشاع وأنماط المؤسسات في كل طبقة.

لقد بدأت Whit أحدها في تنفيذ MVC ، ولكن ، هو ممارسة جيدة في العد "الفصل بين المخاوف"

وبهذه الطريقة ، يمكنك تحقيق رمز منظم جيدًا ومفصل.

لقد كان هذا التفسير الموجز مفيدًا.

يعتبر.

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