คำแนะนำคำอธิบายประกอบ
ฟังก์ชั่นของ @requestmapping Maps Maps Requests คำขอไปยังคลาส Handler เฉพาะและ/หรือ Handler Methods คำอธิบายประกอบนี้สามารถใช้ในชั้นเรียนหรือวิธีการและระบุเส้นทางการร้องขอผ่านค่าคุณสมบัติ ใช้ในคลาสคอนโทรลเลอร์เพื่อให้ข้อมูลการแมปคำขอ URL เบื้องต้นซึ่งเป็นเส้นทางล่วงหน้าล่วงหน้าที่สัมพันธ์กับไดเรกทอรีรูทของเว็บแอปพลิเคชัน ใช้ในวิธีคอนโทรลเลอร์หมายถึงการจัดทำแผนที่ URL โดยละเอียด หากคลาสคอนโทรลเลอร์ไม่มีคำอธิบายประกอบการร้องขอ URL ของเครื่องหมายคำอธิบายประกอบบนวิธีนี้สัมพันธ์กับไดเรกทอรีรูทของเว็บแอปพลิเคชัน
คำอธิบายประกอบ @requestmapping ให้คุณสมบัติต่อไปนี้:
ชื่อ: ใช้เพื่อระบุชื่อ Mapper
ค่า: ใช้เพื่อระบุเส้นทางการแมปเหมือนกับเส้นทาง
เส้นทาง: ใช้เพื่อระบุเส้นทางการแมปค่าเดียวกัน
วิธีการ: ใช้เพื่อระบุประเภทคำขอ: รับ, โพสต์, หัว, ตัวเลือก, ใส่, แพทช์, ลบ, ติดตาม
Params: ระบุพารามิเตอร์ที่ร้องขอ
ส่วนหัว: ระบุส่วนหัวคำขอตัวอย่างซอร์สโค้ด: requestmapping (value = "/บางอย่าง", headers = "content-type = text/*")
ผู้บริโภค: ระบุประเภทเนื้อหา (ประเภทเนื้อหา) ที่จัดการการส่งคำขอเช่น Application/JSON, Text/HTML คำขอจะถูกแมปเฉพาะในกรณีที่ประเภทเนื้อหาตรงกับหนึ่งในประเภทสื่อเหล่านี้
ผลิต: ระบุประเภทเนื้อหาที่ส่งคืนโดยคำขอตัวอย่างเช่น: ผลิต = "แอปพลิเคชัน/json; charset = utf-8"
ระบุเส้นทางการแมปผ่านแอตทริบิวต์ค่า
ใช้คำอธิบายประกอบการร้องขอการใช้งานบนคลาสคอนโทรลเลอร์
@controller @requestmapping ("order") คลาสสาธารณะ orderinfocontroller {// ตัวอย่าง 1 @requestmapping ("orderinfo") โมเดลสาธารณะและวิวทิว -เพิ่มการร้องขอคำอธิบายประกอบ ("คำสั่งซื้อ") ในคลาส OrderController ซึ่งระบุว่าคำขอทั้งหมดสำหรับคู่จะต้องเริ่มต้นด้วย "root/order"
เส้นทางคำขอสำหรับตัวอย่าง 1 คือ: http: // localhost: 8080/springmvcnext/order/orderinfo
ตัวอย่างที่ 1 หาก @requestmapping ("คำสั่งซื้อ") บนคอนโทรลเลอร์จะแสดงความคิดเห็นเส้นทางคำขอที่สอดคล้องกันคือ: http: // localhost: 8080/springmvcnext/orderinfo
การใช้คำอธิบายประกอบการร้องขอ
1. การใช้งานพื้นฐานทั่วไป
@controller @requestmapping ("order") คลาสสาธารณะ orderinfocontroller {// ตัวอย่าง 1 @requestmapping ("orderinfo") โมเดลสาธารณะและวิวทิว } // ตัวอย่างที่ 2: จัดการการแมป URL หลายตัว @RequestMapping ({"ข้อมูล", "ดัชนี"}) // หรือ @RequestMapping (value = {"ข้อมูล", "ดัชนี"}) โมเดลสาธารณะและคำสั่ง orderinfo2 () {ส่งคืนแบบจำลองใหม่ ("คำสั่ง/ข้อมูล", "ข้อความ" } // ตัวอย่างที่ 3 @requestmapping โมเดลสาธารณะและวิวทิวทัศน์ orderInfo3 () {ส่งคืน modelandview ใหม่ ("คำสั่ง/ข้อมูล", "ข้อความ", "orderinfo3"); -requestmapping กำหนดค่าแอตทริบิวต์ค่าเท่านั้น หากไม่มีแอตทริบิวต์อื่นแสดงค่าจะถูกละเว้น เพียงกรอกข้อมูลการแมป URL โดยตรง หากมีการระบุแอตทริบิวต์อื่น ๆ แอตทริบิวต์ค่าจะต้องกรอกอย่างชัดเจน
เส้นทางการเข้าถึงของตัวอย่างที่ 1 ด้านบนคือ: http: // localhost: 8080/springmvcnext/order/orderinfo
ตัวอย่างที่ 2: คุณสมบัติค่าในอินเทอร์เฟซ RequestMapping เป็นอาร์เรย์และเส้นทางการเข้าถึงทั้งหมดยังได้รับการสนับสนุนให้ผ่านอาร์เรย์ตัวอย่างที่ 2: http: // localhost: 8080/springmvcnext/order/index หรือ http: // localhost: 8080/springmvcnext/order/info
ตัวอย่างที่ 3: เมื่อค่าว่างเปล่าหมายความว่าวิธีการคือการดำเนินการเริ่มต้นภายใต้คลาส เส้นทางการเข้าถึงของตัวอย่างที่ 3 คือ: http: // localhost: 8080/springmvcnext/order
2. การแมปเทมเพลต URL
ประกาศตัวแปร URI ในคำอธิบายประกอบการร้องขอและเข้าถึงค่าจาก URL คำขอจริงผ่านคำอธิบายประกอบ @PathVariable ตัวอย่างมีดังนี้:
@ControllerPublic คลาส orderinfocontroller {// ตัวอย่าง 10 url พร้อม placeholder @requestmapping (value = "user/{userId}/order/{ordernumber}", method = requestmethod.get) {{{{{{{{{{{{{{{{pathvariable string userly "userId:"+userId+"ordernumber:"+ordernumber); -ตัวอย่างที่ 10 URL คำขอ: http: // localhost: 8080/springmvcnext/user/12/order/333 เมื่อมีการร้องขอผ่าน URL นี้ SpringMVC จะแยกตัวแปร×× x ใน {××} ในเทมเพลต URL ผ่าน @PathVariable ตัวแปร URL จะถูกแปลงเป็นประเภทที่สอดคล้องกันโดยอัตโนมัติ หากไม่สามารถแปลงได้ข้อผิดพลาดจะถูกส่งคืน ตัวอย่างเช่นลองเข้าถึงด้วย URL ต่อไปนี้: http: // localhost: 8080/springmvcnext/user/xxx/order/333 โดยที่พารามิเตอร์ userid = xxx เกิดข้อผิดพลาด:
3. การทำแผนที่เส้นทาง URL แบบมด
ant style wildcard ตัวละครมีดังนี้:
ตัวอย่าง:
@ControllerPublic คลาส orderinfocontroller {// ตัวอย่าง 11 url กับ placeholder @requestmapping (value = "order*", method = requestmethod.get) //@requestmapping (value = "order?", method = requestmethod.get) //@requestmapping ส่งคืน ModelandView ใหม่ ("คำสั่งซื้อ/ข้อมูล", "ข้อความ", "OrderInfo5"); -ตัวอย่าง 11 URL คำขอ: http: // localhost: 8080/springmvcnext/order/orderdexx? ordernumber = 12 สามารถจับคู่คำขอทั้งหมดได้จาก http: // localhost: 8080/springmvcnext/order/orderxxxx
@RequestMapping (value = "order?", method = requestMethod.get) สามารถจับคู่ได้เช่น "…/ordera? ordernumber ….” "…/คำสั่งซื้อ? @RequestMapping (value = "order/**", method = requestMethod.get) สามารถจับคู่ได้เช่น "…/order/aaa? ordernumber ….” "…/order/bbb/ccc? ordernumber ….”
นอกจากนี้การร้องขอการทำแผนที่ยังรองรับการแมปเส้นทาง URL แบบนิพจน์ทั่วไปข้ามสิ่งนี้
ระบุประเภทคำขอผ่านแอตทริบิวต์เมธอด
ประเภทของเมธอดแอตทริบิวต์คำขอเพรดิเคตที่ได้รับจากการร้องขอการทำแผนที่ตัวอย่างต่อไปนี้ยอมรับการร้องขอ
// ตัวอย่างที่ 4 @requestMapping (value = "รายละเอียด", method = requestMethod.get) // คุณยังสามารถใช้ @getMapping ("รายละเอียด") โมเดลสาธารณะและข้อมูลวิววิว () {ส่งคืน modelandview ใหม่ ("คำสั่ง/ข้อมูล", "ข้อความ", "ข้อมูล"); -SpringMVC ยังมีคำอธิบายประกอบเฉพาะสำหรับแต่ละประเภทคำขอ:
@getMapping
@postmapping
@putMapping
@deletemapping
@patchmapping
ระบุชื่อพารามิเตอร์หรือข้อ จำกัด ค่าพารามิเตอร์ผ่านพารามิเตอร์
แอตทริบิวต์พารามิเตอร์สามารถกำหนดว่าพารามิเตอร์คำขอมีพารามิเตอร์เฉพาะหรือสามารถกำหนดข้อ จำกัด เกี่ยวกับค่าพารามิเตอร์ดังที่แสดงในรหัสต่อไปนี้:
// ตัวอย่างที่ 5 พารามิเตอร์พารามิเตอร์ที่ผ่านการรับรองรวมถึง orderNumber @RequestMapping (value = "detail2", params = "orderNumber") public modelandView Detail2 (ordernumber สตริง) {ส่งคืนโมเดลใหม่และวิวทิวทัศน์ ("คำสั่ง/ข้อมูล", "ข้อความ" } // ตัวอย่างที่ 6 พารามิเตอร์พารามิเตอร์ที่ผ่านการรับรอง @RequestMapping (value = "รายละเอียด 3", params = "orderNumber! = 1222") โมเดลสาธารณะและวิววิวรายละเอียด 3 -ตัวอย่างที่ 5: พารามิเตอร์คำขอที่ผ่านการรับรองจะต้องมีพารามิเตอร์ลำดับ หากไม่รวมพารามิเตอร์ชื่อ OrderNumber การเข้าถึงจะถูกปฏิเสธ: เส้นทางการเข้าถึง: http: // localhost: 8080/springmvcnext/order/detail2? ordernumber = 12
ตัวอย่างที่ 6: พารามิเตอร์การร้องขอที่ผ่านการรับรองจะต้องมีพารามิเตอร์ ordernumber และค่าพารามิเตอร์ไม่สามารถเป็น 1222 เส้นทางการเข้าถึง: http: // localhost: 8080/springmvcnext/order/detail3? ordernumber = 1222 มีการรายงานข้อผิดพลาด
ระบุชื่อพารามิเตอร์หรือข้อ จำกัด ค่าพารามิเตอร์ผ่านส่วนหัว
แอตทริบิวต์วิธีการที่จัดทำโดย requestmapping สามารถระบุประเภทส่วนหัวคำขอ เฉพาะเมื่อประเภทส่วนหัวข้อมูลคำขอตรงกับค่าที่ระบุจะสามารถเข้าถึงได้ตามปกติ
// ตัวอย่าง 7 พารามิเตอร์ค่าพารามิเตอร์ จำกัด @requestmapping (value = "headtest", ส่วนหัว = "apikey = 2313131313") // @requestmapping (value = "headtest", ส่วนหัว = {"accept = apption/json"}) -ตัวอย่างที่ 7: ส่วนหัวคำขอต้องมี APIKEY: 23131313 เพื่อส่งคืนปกติเข้าถึงโดยตรงและกลับข้อผิดพลาด:
เพิ่มข้อมูลส่วนหัว apikey: 2313131313 การเข้าถึงสำเร็จ:
ระบุประเภทเนื้อหาของการส่งที่ร้องขอผ่านการบริโภค (ประเภทเนื้อหา)
// ตัวอย่างที่ 8 ผู้บริโภค @RequestMapping (value = "บริโภค", method = requestMethod.post, consumer = "application/json") โมเดลสาธารณะและวิวทิวทัศน์ของผู้บริโภค -
ตัวอย่าง จำกัด ประเภทพารามิเตอร์การร้องขอเป็นแอปพลิเคชัน/JSON ซึ่งหมายความว่าวิธีนี้จะประมวลผลเฉพาะการร้องขอว่าประเภทเนื้อหาคือแอปพลิเคชัน/JSON:
ต่อไปนี้ผ่านการทดสอบบุรุษไปรษณีย์:
ตั้งค่ารูปแบบพารามิเตอร์คำขอเป็น Application/JSON ซึ่งสามารถเข้าถึงได้ตามปกติ:
ตั้งค่ารูปแบบพารามิเตอร์เป็น x-form-urlencoded, return error, สถานะ http 415
ระบุประเภทเนื้อหาที่ส่งคืนผ่านการผลิต (ประเภทเนื้อหา)
แอตทริบิวต์ผู้ผลิตใช้เพื่อตั้งค่าประเภทเนื้อหาคืนและตรงตามเงื่อนไขต่อไปนี้: ค่าที่มีการยอมรับในส่วนหัวของคำขอยอมรับจะเหมือนกับค่าที่กำหนดโดยผู้ผลิตหรือคำขอที่ยอมรับได้ถูกตั้งค่าโดยไม่มีการแสดงผล
// ตัวอย่างที่ 8 ผลิตแอปพลิเคชันข้อมูลส่งคืนที่ จำกัด/json @requestmapping (value = "ผลิต", method = requestmethod.get, ผลิต = "แอปพลิเคชัน/json") Public ModelandView ผลิต (ordernumber string) {ส่งคืนแบบจำลองใหม่ -ตัวอย่างที่ 8 ระบุแอปพลิเคชันรูปแบบเนื้อหาคืน/JSON เมื่อรูปแบบการยอมรับที่กำหนดโดยไคลเอนต์คือข้อความ/JSON จะมีการรายงานข้อผิดพลาด สถานะ http 406
เมื่อรูปแบบการยอมรับที่กำหนดโดยไคลเอน
สรุป
ข้างต้นคือการทำแผนที่การร้องขอคำอธิบายประกอบการทำแผนที่สำหรับการตรวจสอบ Spring MVC และเรียนรู้ชุดบทช่วยสอนใหม่ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!