Memahami Perbezaan antara @RequestParam dan @PathVariable dalam Mengendalikan Aksara Khas
Apabila berurusan dengan parameter dalam permintaan web, pembangun mungkin menghadapi pilihan antara menggunakan anotasi @RequestParam dan @PathVariable. Kedua-duanya berfungsi untuk mengikat parameter permintaan kepada parameter kaedah, tetapi ia berbeza dalam pengendalian aksara khas.
@RequestParam
Digunakan untuk mendapatkan semula parameter daripada rentetan pertanyaan (cth. , ?nama=John). Aksara khas tertentu, seperti " ", mungkin dilayan secara berbeza apabila melalui anotasi ini. Contohnya, " " boleh ditafsirkan sebagai ruang.
@PathVariable
Sebaliknya, @PathVariable mendapatkan semula parameter daripada templat URI, memberikan kawalan yang lebih besar terhadap betapa istimewanya watak dikendalikan. " " akan ditafsirkan secara literal sebagai tanda tambah apabila menggunakan @PathVariable.
Contoh:
Pertimbangkan URL: "http://example.com/users/ 1234/profile"
Dalam kaedah pengawal:
@RequestMapping(value="/users/{userId}/profile") public User getProfile(@PathVariable("userId") String userId) { // Retrieval based on @PathVariable }
Jika URI mengandungi aksara khas (cth., "http://example.com/users/1234 / profile"), " " dalam @RequestParam akan ditafsirkan sebagai ruang, yang berpotensi memecahkan fungsi. @PathVariable, walau bagaimanapun, akan mengekalkan maksud yang dimaksudkan sebagai tanda tambah.
Parameter Pilihan
Sehingga Musim Bunga 4.3.3, anotasi @PathVariable boleh menerima parameter pilihan. Ini memperkenalkan potensi hierarki laluan URL yang bercanggah, seperti yang ditunjukkan di bawah:
Oleh itu, pertimbangan yang teliti adalah diperlukan semasa mengendalikan anotasi @PathVariable pilihan.
Atas ialah kandungan terperinci @RequestParam lwn. @PathVariable: Bagaimanakah Mereka Berbeza dalam Mengendalikan Watak Khas pada Musim Bunga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!