طلب تعليمات التعليق التوضيحي
وظيفة @requestmapping شرح طلبات الويب إلى فئات معالج محددة و/أو أساليب المعالج. يمكن استخدام هذا التعليق على فئة أو طريقة ويحدد مسار الطلب من خلال قيمة الخاصية. تستخدم في فئة وحدة التحكم لتوفير معلومات تعيين طلب عنوان URL الأولي ، وهو مسار ما قبل المدعى عليه بالنسبة إلى الدليل الجذر لتطبيق الويب. المستخدمة في طريقة وحدة التحكم ، فهذا يعني توفير خريطة URL مفصلة. إذا لم يكن لدى فئة وحدة التحكم تعليق توضيحي طلب ، فإن عنوان URL لعلامة التعليقات التوضيحية على الطريقة بالنسبة إلى الدليل الجذر لتطبيق الويب.
يوفر شرح @requestmapping الخصائص التالية:
الاسم: يستخدم لتحديد اسم الخريطة
القيمة: تستخدم لتحديد مسار التعيين ، مثل المسار
المسار: يستخدم لتحديد مسار التعيين ، نفس القيمة
الطريقة: تستخدم لتحديد نوع الطلب: احصل ، نشر ، رأس ، خيارات ، وضع ، تصحيح ، حذف ، تتبع
Params: حدد المعلمات المطلوبة
الرؤوس: حدد رأس الطلب ، مثال رمز المصدر: requestmapping (value = "/some" ، headers = "content-type = text/*")
المستهلكون: يحدد نوع المحتوى (نوع المحتوى) الذي يتولى تقديم الطلب ، مثل التطبيق/JSON ، النص/HTML. سيتم تعيين الطلب فقط إذا كان نوع المحتوى يطابق أحد أنواع الوسائط هذه.
ينتج: حدد نوع المحتوى الذي تم إرجاعه بواسطة الطلب ، على سبيل المثال: المنتج = "Application/JSON ؛ charset = UTF-8"
حدد مسار التعيين من خلال سمة القيمة
استخدم التعليق التوضيحي للطلب على فئة وحدة التحكم
@controller @requestMapping ("Order") public orderinfocontroller {// مثال 1 @requestmapping ("orderinfo") publicandview orderinfo1 () {return new ModelAndView ("order/info" ، "message" ، "OrderInfo") ؛ }}تمت إضافة طلب التعليق التوضيحي ("الطلب") على فئة OrderController ، مما يشير إلى أن جميع طلبات الأزواج يجب أن تبدأ بـ "الجذر/الطلب"
مسار الطلب على سبيل المثال 1 هو: http: // localhost: 8080/springmvcnext/order/orderinfo
مثال 1 إذا تم التعليق على requestmapping ("Order") على وحدة التحكم ، فإن مسار الطلب المقابل هو: http: // localhost: 8080/springmvcnext/orderinfo
باستخدام requestmapping التعليق التوضيحي على طريقة وحدة التحكم
1. الاستخدام الأساسي الشائع
@controller @requestMapping ("Order") public orderinfocontroller {// مثال 1 @requestmapping ("orderinfo") publicandview orderinfo1 () {return new ModelAndView ("order/info" ، "message" ، "OrderInfo") ؛ } // مثال 2: التعامل مع mappings urquestmapping ({"info" ، "index"}) // orquestmapping (value = {"info" ، "index"}) modelandview orderinfo2 () {return new modelandview ("order/info" ، } // مثال 3 REQUESTMAPP PUBLICALDVIEW ORDERINFO3 () {return New ModelAndView ("Order/Info" ، "Message" ، "OrderInfo3") ؛ }}requestmapping يهيئ فقط سمة القيمة. إذا لم يتم عرض أي سمة أخرى ، يتم حذف القيمة. فقط املأ معلومات تعيين عنوان URL مباشرة. إذا تم تحديد سمات أخرى ، فيجب ملء سمة القيمة بوضوح.
مسار الوصول للمثال 1 أعلاه هو: http: // localhost: 8080/springmvcnext/order/orderinfo
مثال 2: خاصية القيمة في واجهة الطلب هي صفيف ، ويتم دعم جميع مسارات الوصول أيضًا لتمرير مثال صفيف 2: http: // localhost: 8080/springmvcnext/order/index
مثال 3: عندما تكون القيمة فارغة ، فهذا يعني أن الطريقة هي الإجراء الافتراضي ضمن الفصل. مسار الوصول للمثال 3 هو: http: // localhost: 8080/springmvcnext
2. رسم خرائط قالب عنوان URL
أعلن أن متغير URI في شرح requestmapping ، والوصول إلى القيمة من عنوان URL للطلب الفعلي من خلال التعليق التوضيحي المتغير. المثال على النحو التالي:
controllerpublic class orderInfOconTroller {// مثال 10 url مع starle@requestmapping (value = "user/{userId}/order "userId:"+userId+"ordernumber:"+ordernumber) ؛ }}مثال 10 url url: http: // localhost: 8080/springmvcnext/user/12/order/333 عندما يتم بدء طلب من خلال عنوان URL هذا ، سوف يستخرج springMVC المتغير × × في {× × ×} في قالب url من خلال pathvarable. سيتم تحويل متغير URL تلقائيًا إلى النوع المقابل. إذا كان لا يمكن تحويله ، فسيتم إرجاع خطأ. على سبيل المثال ، حاول الوصول إليه باستخدام عنوان URL التالي: http: // localhost: 8080/springmvcnext/user/xxx/order/333 حيث المعلمة userid = xxx ، يحدث خطأ:
3. رسم خرائط مسار URL على غرار النمل
أحرف النمط البرية على النمط هي كما يلي:
مثال:
controllerpublic class orderinfocontroller {// مثال 11 عنوان URL مع sterferrequestMapping (order*"، method = requestMethod.get) //@requestMapping (value =" order؟ " New ModelAndView ("Order/Info" ، "Message" ، "OrderInfo5") ؛ }}مثال 11 طلب طلب url: http: // localhost: 8080/springmvcnext/order/orderdexx؟ ordernumber = 12 يمكن أن يتطابق مع جميع الطلبات من http: // localhost: 8080/springmvcnext/order/orderxxxx؟ ordernumber = yyyy
requestmapping (value = "order؟" ، يمكن أن تتطابق method = requestMethod.get) مثل ".../ordera؟ ordernumber…." ".../أوامر؟ ترتيب…." requestmapping (value = "order/**" ، يمكن أن تتطابق method = requestMethod.get) مثل ".../order/aaa؟ ordernumber…." ".../order/bbb/ccc؟ ordernumber…."
إضافة
حدد نوع الطلب من خلال سمة الطريقة
نوع طلب سمة الأسلوب الذي يوفره الطلب ، المثال التالي يقبل فقط الحصول على طلبات
// مثال 4 REQUESTMAPPE (value = "التفاصيل" ، method = requestMethod.get) // يمكنك أيضًا استخدام GetMapping ("التفاصيل") info modelandview info () {return new modelandview ("order/info" ، "message" ، "info") ؛ }يوفر SPRINGMVC أيضًا تعليقات توضيحية مخصصة لكل نوع طلب:
getMapping
postmapping
putmapping
deletemapping
patchMapping
حدد اسم المعلمة أو قيود قيمة المعلمة من خلال params
يمكن أن تحدد سمة params أن معلمة الطلب تحتوي على معلمات محددة ، أو يمكنها أيضًا تحديد قيود على قيم المعلمات ، كما هو موضح في الكود التالي:
// مثال 5 params تتضمن المعلمات المؤهلة ordernumber @requestmapping (value = "delation2" ، params = "ordernumber") modelandview detail2 (string ordernumber) {return new modelandview ("order/info" ، "message" ، ordernumber) ؛ } // مثال 6 params المعلمات المؤهلة value REquestMapping (value = "delation3" ، params = "ordernumber! = 1222") publicandview detail3 (string ordernumber) {return new modelandview ("order/info" ، "message" ، ordernumber) ؛ }مثال 5: يجب أن تحتوي معلمات الطلب المؤهلة على رقم Ordernument. إذا لم يتم تضمين المعلمة المسمى OrderNumber ، فسيتم رفض الوصول: مسار الوصول: http: // localhost: 8080/springmvcnext
مثال 6: يجب أن تحتوي معلمات الطلب المؤهلة على ترتيب المعلمة ولا يمكن أن تكون قيمة المعلمة 1222. مسار الوصول: http: // localhost: 8080/springmvcnext/order/detail3؟ ordernumber = 1222 تم الإبلاغ عن خطأ
حدد اسم المعلمة أو قيود قيمة المعلمة من خلال الرؤوس
يمكن أن تحدد سمة الطريقة المقدمة بواسطة requestMapping نوع رأس الطلب. فقط عندما يفي نوع رأس بيانات الطلب بالقيمة المحددة ، يمكن الوصول إليها بشكل طبيعي.
// مثال 7 params params parameter value @requestmapping (value = "headtest" ، headers = "apikey = 2313131313") // @requestmapping (value = "headtest" ، headers = {"قبول = application/json"}) publicandview header () }مثال 7: يجب أن يحتوي رأس الطلب على apkike: 23131313 للعودة بشكل طبيعي ، والوصول مباشرة ، وإعادة خطأ:
إضافة معلومات الرأس apikey: 2313131313 الوصول ناجح:
حدد نوع المحتوى للتقديم المطلوب من خلال الاستهلاك (نوع المحتوى)
// مثال 8 المستهلك @requestmapping (value = "consules" ، method = requestMethod.post ، consumer = "application/json") modelandview المستهلكين (string ordernumber) {إرجاع modelandview جديد ("الطلب/المعلومات" ، "رسالة" ، OrderNumber) ؛ }يحد المثال من نوع المعلمة طلب إلى التطبيق/JSON ، مما يعني أن هذه الطريقة تعالج فقط طلبات أن نوع المحتوى هو التطبيق/JSON:
ما يلي يجتاز اختبار ساعي البريد:
قم بتعيين تنسيق معلمة الطلب على التطبيق/JSON ، والذي يمكن الوصول إليه بشكل طبيعي:
قم بتعيين تنسيق المعلمة على X-Form-urlencoded ، خطأ الإرجاع ، حالة HTTP 415
حدد نوع المحتوى الذي تم إرجاعه من خلال المنتجات (نوع المحتوى)
يتم استخدام سمة المنتجين لتعيين نوع محتوى الإرجاع وتلبية الشروط التالية: القيمة التي تحتوي على قبول في رأس طلب قبول هي نفس القيمة التي يحددها المنتج ، أو تم تعيين الطلب المقبول دون عرض.
// مثال 8 ينتج تطبيق بيانات إرجاع محدودة/jsonrequestmapping (value = "المنتج" ، method = requestMethod.get ، reductes = "application/json") ينتج نموذج publicandview (string ordernumber) {return new modelandview ("order/info" ، "message" ، ordernumber) ؛ }مثال 8 يشير إلى تطبيق تنسيق محتوى الإرجاع/JSON. عندما يكون تنسيق القبول الذي تم تعيينه من قبل العميل هو Text/JSON ، يتم الإبلاغ عن خطأ. HTTP حالة 406
عندما يكون تنسيق القبول الذي يحدده العميل هو التطبيق/JSON أو لا يتم تعيين قيمة القبول ، يمكن تشغيله بشكل طبيعي
لخص
ما ورد أعلاه هو شرح طلب تعيين طلب تعيين SPRING MVC وتعلم سلسلة جديدة من البرامج التعليمية المقدمة لك من قبل المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!