คำนำ
บทความนี้ส่วนใหญ่แนะนำเนื้อหาที่เกี่ยวข้องเกี่ยวกับการกำหนดเส้นทางฤดูใบไม้ผลิตามพารามิเตอร์ URL มันถูกแบ่งปันสำหรับการอ้างอิงและมูลค่าการเรียนรู้ของคุณ มาดูการแนะนำรายละเอียดด้านล่าง
ค้นพบปัญหา
เมื่อเร็ว ๆ นี้ฉันพบปัญหาเมื่อเขียนอินเทอร์เฟซนั่นคือส่วนเส้นทางของ URL ของอินเทอร์เฟซพักทั้งสองนั้นเหมือนกันและพวกเขาจะแตกต่างกันไปตามการสืบค้นที่ผ่านในพารามิเตอร์ที่แตกต่างกัน
ตัวอย่างเช่นอินเตอร์เฟสการอัปโหลดปกติของ S3 คือ:
put /{bucketName} /{objectName}อินเทอร์เฟซสำหรับการอัปโหลดเป็นชิ้นคือ:
put /{bucketName} /{objectName}? partNumber = {partNumber} & uploadId = {uploadId}Partnumber และ UploadID เป็นอินเทอร์เฟซหนึ่งและพารามิเตอร์สองตัวไม่ได้ผ่านเป็นอินเทอร์เฟซอื่น แล้วจะตั้งเส้นทางในฤดูใบไม้ผลิได้อย่างไร?
โดยทั่วไปเราตั้งค่าเส้นทาง @RequestMapping(value = "/xx", method = RequestMethod.GET) จากนั้นในลายเซ็นวิธีการพารามิเตอร์สามารถฉีดผ่าน @requestparam
อย่างไรก็ตามมันเป็นไปไม่ได้ที่จะใช้ความแตกต่างโดยตรงโดยการฉีดพารามิเตอร์ที่แตกต่างกันเช่น:
@responsebody@requestmapping (value = "/xx", method = requestmethod.get) สตริงสาธารณะ get1 () {return "get1";}@responsebody@repquilmapping (value = "/xx", method = requestmethod.get) สตริงสาธารณะ get2 (@requestparam ชื่อ)สิ่งนี้จะรายงานข้อผิดพลาด:
java.lang.illegalstateException: การทำแผนที่ที่คลุมเครือ ไม่สามารถแมปวิธีการ 'democontroller_v01' public java.lang.string com.nd.sdp.ndss.controller.v01.democontroller.get1 () ถึง {[/demo/xx], methods = [get]}: มี 'democontroller_v01'สารละลาย
หมายความว่าคุณได้ลงทะเบียนซ้ำแล้วซ้ำอีกดังนั้น @requestparam จึงไม่สามารถใช้เป็นพื้นฐานการกำหนดเส้นทาง
@requestparam
ใช้ในการประมวลผลประเภทเนื้อหา: เนื้อหาที่เข้ารหัสสำหรับแอปพลิเคชัน/x-www-form-urlencoded (ในโปรโตคอล HTTP หากไม่ได้ระบุประเภทเนื้อหาพารามิเตอร์ที่ผ่านเริ่มต้นคือประเภทแอปพลิเคชัน/x-www-form-urlencoded)
RequestParam สามารถยอมรับคุณสมบัติของประเภทหรือประเภทวัตถุอย่างง่าย
สาระสำคัญคือการใช้กลไกการแปลงของสปริงเพื่อกำหนดค่าแผนที่พารามิเตอร์ค่าคีย์ใน request.getParameter () เพื่อแปลงเป็นพารามิเตอร์ที่รับวัตถุหรือฟิลด์
@requestmapping เป็นคำอธิบายประกอบการกำหนดเส้นทาง นอกเหนือจากฟิลด์ค่าที่ใช้กันทั่วไปสำหรับการตั้งค่า URL แล้วยังมีพารามิเตอร์พารามิเตอร์ซึ่งสามารถระบุวิธีการจับคู่พารามิเตอร์ของการสืบค้นใน URL วิธีการกำหนดค่าหลายวิธี:
สิ่งนี้ช่วยให้คุณระบุเส้นทางได้อย่างยืดหยุ่นมาก
ยิ่งกว่านั้น @requestmapping ยังให้พารามิเตอร์ส่วนหัวซึ่งช่วยให้เราสามารถกำหนดเส้นทางตามสถานการณ์ส่วนหัว!
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com