مقدمة
الباقي هو نقل الحالة التمثيلية. (مورد) تحول حالة طبقة الأداء. إنها بنية برامج الإنترنت الأكثر شعبية في الوقت الحاضر. يحتوي على بنية واضحة ، متوافقة مع المعايير ، وسهلة الفهم وسهلة التوسع ، لذلك يتم تبنيها من قبل المزيد والمزيد من المواقع الإلكترونية ، والنشر ، وحذف ، والطرح ، والحصول على CRUD على التوالي. بدأ Spring3.0 في دعم الطلبات على غرار الراحة ، وتحويل طلبات البريد إلى طلبات PUT وحذفها من خلال org.springframework.web.filter.hiddenhttpmethodfilter. تستخدم هذه التجربة الربيع 4.0.
HiddenHttpMethodFilter رمز المصدر
السلسلة النهائية الثابتة العامة default_method_param = "_method" ؛@تجاوز الفراغ المحمي dofilterinternal (طلب httpservletrequest ، httpservletresponse ، استجابة filterchain filterchain) servlexception ، ioexception {string paramvalue = request.getParameter. ("post" .equals (request.getMethod ()) && stringUtils.hasLength (paramValue)) {string method = paramValue.toupperCase (locale.english) ؛ httpservletrequest wrapper = new httpmethodrequestwrapper (request ، method) ؛ {filterchain.dofilter (طلب ، استجابة) ؛}}من الكود المصدري لـ HiddenHttpMethodFilter ، يمكن ملاحظة أن Spring يحوله وفقًا لمعلمة _method في الطلب. لذلك ، إذا كنت ترغب في بدء حذف أو طلب على غرار الراحة ، فأنت بحاجة فقط إلى تضمين المعلمة _method في النموذج وتعيين قيمة _method لحذف أو وضع (CAPS). أمثلة مفصلة هي كما يلي:
تكوين hiddenhttpmethodfilter في web.xml
كتابة صفحة كتابة رمز المعالج
<!-تكوين org.springframework.web.filter.hiddenhttpmethodfilter لتحويل طلبات البريد إلى طلبات وضع أو حذف-> <lipter> <filter-name> hiddenhttpmethodfilter </filter-name> <ilter-class> org.springframework.web.filter.hiddenhttpmethodfilter </filter-class> </filter> <filter-mapping> <filter-name> hiddenhttpmethodfilter </filter-name>
package rex.springmvc.handlers ؛ import org.apache.log4j.logger ؛ استيراد org.springframework.steretype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapping org.springframework.web.bind.annotation.requestparam ؛@requestmapping (value = "/resttest")@controllerpublic class restTestHandler {private static final logger = logger.getlogger (restTestHandler.Class) ؛ method = requestMethod.get) string public refret (requestparam (value = "id" ، مطلوب = خطأ) integer id) {logger.debug ("refret:" + id) ؛ return success ؛@requestmapping (value = "/redput/{id}" ، method = requestmethod.put) retput public (@value = "idale =" idale = "، idale =" ، معرف) {logger.debug ("Resput:" + id) ؛ إرجاع النجاح ؛}@requestMapping (value = "/restDelete/{id}" ، method = requestMethod.delete) السلسلة العامة restDelete (respelete (value = "id" ، مطلوب = خطأ) integer) {logger.deBug ( Success ؛}@requestmapping (value = "/restpost" ، method = requestMethod.post) السلسلة العامة RestPost () {logger.debug ("RestPost") ؛ إرجاع النجاح ؛}}<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3. rel = "nofollow الخارجي"> اختبار REST احصل على </a> <br> <form action = "resttest/retput/1" method = "post"> <input type = "hidden" name = "_ method" value = "put"> <input type = "prident" value = "pridt" </form> <br> <br> value = "delete"> <input type = "prident" value = "submit"> </brem> <br> <br> <form action = "resttest/restpost" method = "post"> <input type = "pridt" value =
ملاحظة: يجب إضافة التعليق التوضيحي requestparam في المعالج بالمعلمة المطلوبة ، وإلا فإن خطأ 400 سيحدث عند الوصول إلى الصفحة.
لخص
ما ورد أعلاه هو كل محتوى هذه المقالة حول إدخال أمثلة نمط الراحة springMVC وأمثلة رمز التنفيذ. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
SPRINGMVC بدأت مثال
شرح مفصل لرمز استعلام المستخدم لتطوير SPRINGMVC API RESTFLE
مقدمة لطريقة SpringMVC لتنفيذ التحميل غير المتزامن باستخدام multipartfile
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها.