บทความนี้ส่วนใหญ่ศึกษาความแตกต่างระหว่าง @PathParam และ @QueryParam ดังนี้
วันนี้ฉันดีบักฟังก์ชั่นการอัปโหลด ไคลเอนต์ส่งข้อมูลด้วยโทรศัพท์มือถือและแนบพารามิเตอร์กับ URL พื้นหลังใช้ @PathParam เพื่อรับ แต่มีการรายงานข้อผิดพลาดและไม่สามารถรับพารามิเตอร์นี้ได้
URL: http://192.168.1.3/web1_service/convert/vict_hj1000?unit=160106
@Path ("/vict_hj1000") @post @consumes (mediaType.multipart_form_data) การตอบสนองสาธารณะ createVicThj1000detect (@formdataparam ("name0") inputstream uploadedInputStream, @PathParam ("หน่วย" กล่าวอีกนัยหนึ่งหากไม่สามารถรับพารามิเตอร์หน่วยนี้ได้จะเกิดอะไรขึ้น?
ฉันตรวจสอบออนไลน์และพบเหตุผล พารามิเตอร์ใน URL ถูกเขียนอย่างไม่ถูกต้องซึ่งทำให้พื้นหลัง @PathParam ไม่สามารถรับได้ รายการต่อไปนี้แสดงความแตกต่างระหว่าง @PathParam และ @QueryParam:
1. @PathParam, เพิ่มค่าพารามิเตอร์โดยตรงหลังจาก Slash ใน URL ตัวอย่างเช่น www.a.com/student/001;
2. @QueryParam, เพิ่มพารามิเตอร์ในรูปแบบของ [คีย์-ค่าคู่] ไปยัง URL ตัวอย่างเช่น: www.a.com/student?id=001;
ในแอปพลิเคชันของฉัน URL ใช้พารามิเตอร์ในรูปแบบของคู่คีย์-ค่าในขณะที่พื้นหลังใช้ @PathParam ซึ่งไม่ตรงกันดังนั้นจึงไม่สามารถรับได้
วิธีแก้ปัญหาคือการแก้ไข URL ยกเลิกคู่คีย์-ค่าเพิ่มค่าพารามิเตอร์โดยตรงหลังจากสแลชและเปลี่ยนเป็น:
http://192.168.1.3/web1_service/convert/vict_hj1000/160106
และแก้ไขคำอธิบายประกอบ @Path ในพื้นหลังและเปลี่ยนเป็น:
@Path ("/vict_hj1000/{unit}")แก้ไขปัญหา!
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับความแตกต่างระหว่าง @PathParam และ @QueryParam ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!