1. บทนำเกี่ยวกับคำอธิบายประกอบหลายข้อเกี่ยวกับวิธีจัดการพารามิเตอร์ใน URL
@PathVaribale รับข้อมูลใน URL
@requestparam รับค่าของพารามิเตอร์คำขอ
@getMapping รวมคำอธิบายประกอบเป็นตัวย่อของ @requestmapping (method = requestmethod.get)
(1) Pathvaribale ได้รับข้อมูลใน URL
ดูตัวอย่างหากเราต้องการรับค่า id ใน url = localhost: 8080/hello/id รหัสการใช้งานมีดังนี้:
@RestControllerPublic คลาส hellocontroller {@requestmapping (value = "/hello/{id}/{name}", method = requestmethod.get) สตริงสาธารณะ Sayshello (@PathVariable ("ID" -ป้อนที่อยู่ในเบราว์เซอร์: LocalHost: 8080/Hello/100/HelloWorld จากนั้นพิมพ์บนหน้า HTML:
ID: 81
ในทำนองเดียวกันหากเราจำเป็นต้องมีพารามิเตอร์หลายตัวใน URL เพื่อรับเราสามารถทำได้ตามที่แสดงในรหัสต่อไปนี้
@RestControllerPublic คลาส hellocontroller {@requestmapping (value = "/hello/{id}/{name}", method = requestmethod.get) สตริงสาธารณะ Sayshello (@PathVariable ("ID" -ป้อนที่อยู่ในเบราว์เซอร์: LocalHost: 8080/Hello/100/HelloWorld จากนั้นพิมพ์บนหน้า HTML:
ID: 100 ชื่อ: HelloWorld
สิ่งที่จำเป็นสำหรับการได้รับพารามิเตอร์ใน URL ผ่านคำอธิบายประกอบ @PathVariable คือเรารู้รูปแบบของ URL
โดยการรู้รูปแบบของ URL เท่านั้นที่เราสามารถรับค่าพารามิเตอร์ที่ตำแหน่งที่สอดคล้องกันผ่านรูปแบบเดียวกันในวิธีการที่ระบุ
โดยทั่วไปรูปแบบของ URL คือ: localhost: 8080/สวัสดี? id = 98 จะรับค่า ID ในกรณีนี้ได้อย่างไร? สิ่งนี้ต้องการความช่วยเหลือของ @requestparam
2.@requestparam รับค่าของพารามิเตอร์คำขอ
ตัวอย่างเช่น:
@RestControllerPublic คลาส hellocontroller {@requestmapping (value = "/hello", method = requestmethod.get) สตริงสาธารณะ sayshello (@requestparam ("id") จำนวนเต็ม) {return "id:"+id; -ป้อนที่อยู่ในเบราว์เซอร์: localhost: 8080/สวัสดี? id = 1000 และคุณสามารถดูผลลัพธ์ต่อไปนี้:
ID: 1,000
เมื่อเราป้อนที่อยู่ในเบราว์เซอร์: LocalHost: 8080/Hello? id นั่นคือเราไม่ได้ป้อนค่าเฉพาะของ ID ผลลัพธ์ที่ส่งคืนคือ NULL ผลการทดสอบเฉพาะมีดังนี้:
ID: NULL
อย่างไรก็ตามเมื่อเราป้อนที่อยู่ในเบราว์เซอร์: LocalHost: 8080/Hello นั่นคือโดยไม่ต้องป้อนพารามิเตอร์ ID ข้อผิดพลาดต่อไปนี้จะถูกรายงาน:
ข้อผิดพลาดหน้าข้อผิดพลาดที่น่าเบื่อหน่าย
คำอธิบายประกอบ @RequestParam ให้โซลูชันนี้แก่เรานั่นคือเมื่อผู้ใช้ไม่ได้ป้อน ID ค่าเริ่มต้นจะถูกใช้ รหัสเฉพาะมีดังนี้:
@RestControllerPublic คลาส HelloController {@requestMapping (value = "/hello", method = requestMethod.get) // จำเป็น = false หมายความว่าพารามิเตอร์ ID สามารถป้อนใน URL และพารามิเตอร์เริ่มต้นจะถูกใช้ในเวลานี้ สตริงสาธารณะ Sayshello (@requestparam (value = "id", จำเป็น = false, defaultValue = "1") ID ID) {return "id:"+id; -หากมีพารามิเตอร์หลายตัวใน URL นั่นคือ URL ที่คล้ายกับ LocalHost: 8080/Hello? id = 98 && name = helloWorld มันสามารถจัดการได้ด้วยวิธีนี้ รหัสเฉพาะมีดังนี้:
@RestControllerPublic คลาส hellocontroller {@requestmapping (value = "/hello", method = requestmethod.get) สตริงสาธารณะ sayshello (@requestparam ("id") จำนวนเต็ม@requestparam ("ชื่อ") ชื่อสตริง) {return "id:" id+"ชื่อ: -ผลการทดสอบในเบราว์เซอร์มีดังนี้: localhost: 8080/สวัสดี? id = 1000 & name = ที่อยู่ HelloWorld เนื้อหาต่อไปนี้จะปรากฏขึ้น:
ID: 1,000 ชื่อ: HelloWorld
3.@getMapping ชุดคำอธิบายประกอบ
@getMapping เป็นคำอธิบายประกอบแบบผสมผสานซึ่งเป็นตัวย่อของ @requestmapping (method = requestmethod.get) แผนที่คำอธิบายประกอบนี้ http ไปยังวิธีการประมวลผลเฉพาะ
นั่นคือคุณสามารถใช้ @getMapping (value = "/hello") แทน @requestmapping (value = "/hello", method = requestmethod.get) นั่นคือให้เราปรับปรุงรหัส
@RestControllerPublic คลาส hellocontroller {//@requestmapping (value = "/hello", method = requestmethod.get) @getMapping (value = "/hello") // จำเป็น = false หมายความว่าพารามิเตอร์ ID สามารถป้อนใน URL และพารามิเตอร์เริ่มต้นจะใช้ในเวลานี้ สตริงสาธารณะ Sayshello (@requestparam (value = "id", จำเป็น = false, defaultValue = "1") ID ID) {return "id:"+id; -4. คำอธิบายประกอบชุดค่าผสม:
วิธีเดียวกับ getMapping
คำอธิบายประกอบข้างต้นเกี่ยวกับพารามิเตอร์ในการประมวลผลสปริงบู๊ตของ URL คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น