تطوير التعليقات التوضيحية MVC يعني التطوير الطبقي على أساس التعليقات التوضيحية. لكل معالج محدد ، ليست هناك حاجة للتسجيل في XML.
يتم الانتهاء من التسجيل من خلال فصول التعليقات والأساليب في الكود.
تحديد المعالج
controller: الفئة الحالية معالج
requestmapping: الطريقة الحالية هي طريقة المعالج ، اسم الطريقة تعسفي ، ويتم معالجة الطلب والاستجابة له.
controller public class myController {REquestMapping (value = "/Hello.do") ModelAndView Docontrol (httpservletrequest request ، httpservletsponse repress) {modelandview mv = new modelandview () ؛ MV.AddObject ("Message" ، "Method Method") ؛ MV.SetViewName ("مرحبًا ، نيل!") ؛ إرجاع MV ؛ }} يمكن تقييد طلب الطلب ، على سبيل المثال
انسخ الرمز كما يلي: @requestmapping (value = "/hello.do" ، params = {"name = neil" ، "! Age"} ، method = requestMethod.post)
الطريقة = requestmethod.post نوع التقديم المحدود للنشر
params = {"name = neil" ، "! Age"} يجب حمل اسم المعلمة في الطلب المحدود ، والقيمة هي Neil ، ولا يمكن حمل عمر المعلمة.
قبول المعلمات الطلب
إذا كان اسم المعلمة في الطلب هو نفسه اسم المعلمة لطريقة المعالج ، فيمكن الحصول عليه مباشرة.
requestmapping (value = "/hello.do") modelandview docontroll (اسم السلسلة ، int age) {system.out.println ("name:" + name + "، Age:" + Age) ؛ modelandview mv = new ModelAndView () ؛ إرجاع MV ؛ }إذا كانت أسماء المعلمات غير متسقة ، فأنت بحاجة إلى تحديد موقعها من خلال requestparam.
@requestparam لديه ثلاث عقارات
نسخة الكود كما يلي: docontroll (requestparam (name = "username") اسم السلسلة ، requestparam (name = "userage") int) int)
المسار متغير pathvariable
يمكن أن تأتي المعلمات في طريقة المعالج من المعلمات التي يحملها الطلب ، أو من المتغيرات في URI ، أي متغيرات المسار.
مثل المعلمات العادية المذكورة أعلاه ، إذا كان اسم متغير المسار غير متسق مع اسم المعلمة الذي يتلقى قيمته ، فأنت بحاجة إلى الإشارة إلى اسم متغير المسار من خلال المعلمات.
كما هو موضح أدناه ، لاحظ اسم المستخدم والاسم والعمر والعمر.
requestmapping (value = "/{username}/{Age} /hello.do") modelandview docontroll (pathvariable ("username") اسم السلسلة ، requestparam int age) {system.out.println ("name:" + name + "، age: age) ؛ modelandview mv = new ModelAndView () ؛ إرجاع MV ؛ }طريقة المعالج إرجاع قيمة
المعالجات الأربعة التالية شائعة الاستخدام مع شرح Controller هي:
1 ، العودة إلى ModelandView
بعد اكتمال طريقة المعالج ، يجب أن تقفز إلى موارد أخرى ونقل البيانات بين الموارد التي تم إعادة توجيهها ، ثم إرجاع ModelandView.
ModelandView DoconTroll () {modelandview modelandview = new ModelAndView () ؛ // تم تمرير نموذج البيانات. ModelandView.setViewName ("/user.do") ؛ إرجاع ModelandView ؛ }2 ، العودة إلى الفراغ
بعد معالجة الطلب ، ليست هناك حاجة للقفز ، ويمكن إعادة المعالج إلى الفراغ ، مثل استجابة طلب AJAX غير المتزامن.
إذا كنت بحاجة إلى القفز ، فيمكنك أيضًا استخدام Servletapi لإرسال أو إلى الأمام.
3 ، إرجاع كائن
يمكن للمعالج إرجاع كائن كائن ، لا يظهر كعرض منطقي ، ولكن يتم استخدامه لعرض البيانات مباشرة على الصفحة.
عند إرجاع كائن كائن ، تحتاج إلى استخدام شرح ResponseBody لوضع بيانات JSON المحولة في وزن الاستجابة.
requestmapping (value = "/hello.do") responsebody publicandview docontroll () {return new student ("neil" ، 998) ؛ } الواجهة الأمامية تحصل على البيانات
fr.ajax ({url: "hello.do" ، كاملة: الدالة (البيانات) {Alert (data.name + "" + data.age) ؛}})وبالمثل ، يمكنك إرجاع قائمة التجميع ، والخريطة ، إلخ.
requestmapping (value = "/hello.do") reSponseBody publicandview docontroll () {list <studtude> list = new ArrayList <Tudent> () ؛ list.add (طالب جديد ("A" ، 11)) ؛ list.add (طالب جديد ("B" ، 22)) ؛ list.add (طالب جديد ("C" ، 33)) ؛ قائمة العودة } fr.ajax ({url: "hello.do" ، كاملة: الدالة (البيانات) {$ (data) .each (function (index)) {ALERT (data [index] .Name + data [index] .age) ؛}}})4 ، العودة إلى السلسلة
قد يكون هناك ثلاثة سيناريوهات لإعادة سلسلة:
اسم العرض المنطقي
يمكن للسلسلة التي تم إرجاعها بواسطة المعالج تحديد اسم العرض المنطقي وتحويله إلى عنوان عرض فعلي من خلال حل المحلل.
مسار الوصول الحقيقي النهائي = "البادئة" + اسم العرض المنطقي + "لاحقة"
إذا لم تحدد ما قبل الاختلاف ، فيمكنك أيضًا إرجاع اسم العرض الفعلي مباشرة ، مثل
إرجاع "/web-inf/admin/welcome.jsp"
إعادة توجيه إعادة توجيه
العودة "Redirect: /admin/next.action" ؛
وهو ما يعادل الاستجابة. sendredirect (). بعد إعادة التوجيه ، يصبح شريط عنوان المتصفح هو العنوان المعاد توجيهه.
منذ بدء طلب جديد ، لا يمكن نقل المعلمات الأصلية إلى عنوان URL التالي عند إعادة التوجيه.
إذا كنت ترغب في تمرير المعلمات ، فيمكنك لصق المعلمات بعد عنوان URL و A = 1 & B = 2
إلى الأمام
إرجاع "إلى الأمام: /admin/forward.action" ؛
يعادل طلب .getRequestDispatcher (). إلى الأمام (طلب ، استجابة). بعد إعادة التوجيه ، لا يزال شريط عنوان المتصفح هو العنوان الأصلي.
لا يقوم إعادة التوجيه بتنفيذ الطلب والاستجابة الجديدة ، ولكنه يشارك طلبًا واستجابة مع الطلب قبل إعادة التوجيه.
يمكن إعادة استخدام المعلمات مباشرة قبل إعادة التوجيه.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.