سؤال

أنا أفكر في إمكانية استخدام Spring MVC مع إطار Vaadin. هل هناك أي طرق موثقة لجعلها تلعب بشكل جيد معا؟ هل هي فكرة جيدة استخدامها معا؟ المتعلقة بالأداء؛ أنا ذاهب لتشغيل التطبيق على خادم مخصص.

لجعل سؤالي أكثر وضوحا قليلا، كيف يمكنني إرجاع ModelandView من وحدة تحكم Spring MVC التي تجسدها باستخدام Vaadin ويمكنها الوصول إلى جميع البيانات النموذجية.

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

المحلول

دعم الربيع ل VAADIN جديد تماما، لكن هناك مؤخرا كان هناك الكثير من الحديث عن ذلك في المنتدى واختبارها البعض. يبدو أنه يعمل. هناك مقال عن Vaadin Wiki حول هذا الموضوع، وبعض المواضيع حول المنتدى يتحدث عن تكامل فايدين + الربيع:

ويكي: تكامل الربيع
المنتدى: يمكن دمج مجموعة أدوات مطحنة مع تطبيق الربيع
المنتدى: مشكلة تكامل الربيع
المنتدى: العمل مع الربيع
المنتدى: تكامل الربيع

نصائح أخرى

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

يرى هذا الموضوع منتدى فايدين لبلدي AutowiringApplicationServlet حل، بما في ذلك تطبيق حرب عينة.

وافق مع dhrbo.

ليس من الحكمة استخدام الربيع MVC، أكثر من ذلك مع ملفات الإنترنت مع فايدين. Vaadin هو إطار عمل آخر على الويب.

إذا كنت تريد فكرة "الربيع MVC" في مشروع Vaadin الخاص بك، قم بدمجها بنور الربيع والفاصوليا والسياق. بهذه الطريقة يمكنك الحصول على فصل واضح بين وحدات التحكم، واجهة المستخدم (VAADIN)، والنماذج (دمج مع السبات / أورام)

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

http://psponcoding.blogspot.com/2012/03/vaadin-spring-intration.html.

org.springframework.web.servlet.mvc.Controllerhandlerequest يأخذ HttpServletRequest و HttpServletResponse كما المعلمات. من هذه، لا يمكنك معالجة جزء URI. على هذا النحو، فإن وحدة التحكم ليست مناسبة للسيطرة على الطلبات بناء على جزء URI.

في طلبي، قمت بتنفيذ مفهوم مماثل للغاية لوحدة تحكم الربيع. لا يزال طلبي لديه فكرة عن "المشاهدات" و "النموذج". يتم تنفيذ كل عرض في فئة منفصلة وعرضها في كتلة مركزية من الصفحة. أردت نقل منطق معالجة عنوان URL إلى تلك الفئة، لذلك قمت بإنشاء فئة AbstractControllerEntry:

public static abstract class AbstractControllerEntry {
    public abstract boolean matches(String fragment);
    public abstract void open(MainWindow window, String fragment);
}

مع العديد من الفئات الفرعية الممكنة مثل ConstantEntry, PrefixEntry و RegexEntry.

كل فئة عرض لها طريقة ثابتة، والتي تعود AbstractControllerEntry. وبعد يتم الاحتفاظ بمجموعة من جميع الإدخالات في صفيف ثابت داخل MyController فئة (وليس وحدة تحكم الربيع MVC). عند تغيير الشظية (انظر urifragmentutility.)، أذكر جميع الإدخالات، ولأول، مما يطابق، سأتصل بالفتح. أي منطق آخر، مثل العثور على كائن النموذج، داخل فئة العرض، في AbstractControllerEntry تنقيح.

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

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