كيف يقوم Spring 2.5 بتخطيط بيانات الطلب الواردة إلى أمر ModelAttribute؟
-
03-07-2019 - |
سؤال
لقد استخدمت SPRING 2.0 والآن أستخدم Spring 2.5 natially ، جعل SPRING 2.5 الحياة سهلة للغاية فيما يتعلق بوحدات تحكم الويب. يستمر السؤال في ذهني أنه في 2.0 اضطررنا إلى تعيين فئة الأوامر ، وبناءً على ذلك ، يستخدم AbstractFormController لملء كائن الأوامر هذا لنا. في ربيع 2.5 ، لا نفعل ذلك ، فكيف تعرف أن الفئة التي يجب استخدامها؟ هل يعتمد على نوع المعلمة التي لدينا مشروح modelattribute ("الأمر") إلى؟
إذا كانت الإجابة بنعم ، فالرجاء إخباري بأي فصل "utils" يوفر الآلية الدقيقة حيث يمكنني تمرير httprequest واسم الفصل (أو كائن الفئة) وهذا من شأنه أن يعيد لي الكائن المأثور!
أتمنى أن تكون قد حصلت على سؤالي.
شكرا مقدما.
المحلول
تعتمد ملزمة ويب MVC في النهاية على
org.springframework.beans.abstractPropertyAccessor
التي لديها اثنين من التطبيقات الملموسة:
org.springframework.beans.beanwrapperimpl org.springframework.beans.directfieldAccessor
كلاهما يقبل كائن Java ، والذي سيكون الهدف لتعيين الخصائص ل.
الأول ، يستخدم BeanWrapperImpl أساليب Setter/Getter لكائن Java ، بينما يقوم الآخر بتعيين الحقول مباشرة. يتحقق كلا من أن الأساليب/الحقول عامة/مؤهلة ، وإذا استخدمت خلاف ذلك ، استخدم setcactible (True) لضمان تعيينها.
من الويب MVC ، يتم إنشاء مثيل لـ AbstractPropertyAccessor ، ويتم تمرير خريطة المعلمة لـ httprequest إلى AbstractPropertyAccessor#setPropertyValues.
بعد المكالمة ، يتم ملء كائن Java بكل ما هو موجود في الخريطة