Melalui Berbilang Pembolehubah dalam @RequestBody kepada Pengawal MVC Spring Menggunakan Ajax
Apabila cuba menghantar berbilang pembolehubah dalam badan permintaan kepada Spring Pengawal MVC menggunakan Ajax, anda mungkin menghadapi persoalan sama ada perlu untuk menyertakan pembolehubah dalam objek sandaran.
Pertanyaan asal menyatakan hasrat untuk mencapainya menggunakan pendekatan berikut:
@RequestMapping(value = "/Test", method = RequestMethod.POST) @ResponseBody public boolean getTest(@RequestBody String str1, @RequestBody String str2) {}
Dengan data JSON yang menyerupai:
{ "str1": "test one", "str2": "two test" }
Walau bagaimanapun, pengarang menghadapi keperluan untuk menggunakan objek pemegang sebaliknya:
@RequestMapping(value = "/Test", method = RequestMethod.POST) @ResponseBody public boolean getTest(@RequestBody Holder holder) {}
Dan mengiringi JSON:
{ "holder": { "str1": "test one", "str2": "two test" } }
Dilemanya terletak pada hakikat bahawa @RequestBody memerlukan pemetaan pada objek tunggal, menjadikan penggunaan berbilang parameter dalam badan permintaan mencabar.
Walaupun penyelesaian yang dinyatakan di atas yang melibatkan objek pemegang adalah penyelesaian yang sah, pendekatan alternatif tersedia menggunakan objek Peta:
@RequestMapping(value = "/Test", method = RequestMethod.POST) @ResponseBody public boolean getTest(@RequestBody Map<String, String> json) { //json.get("str1") == "test one" }
Kaedah ini menyediakan cara yang fleksibel untuk mengendalikan berbilang pembolehubah yang diluluskan dalam badan permintaan, membenarkan akses kepada mereka melalui kekunci peta.
Selain itu , jika anda lebih suka untuk mengikat ObjectNode Jackson untuk berfungsi dengan pokok JSON penuh, anda boleh menggunakan yang berikut:
public boolean getTest(@RequestBody ObjectNode json) { //json.get("str1").asText() == "test one" }
Alternatif ini memperkasakan anda dengan berbilang pilihan untuk mengendalikan berbilang pembolehubah dalam badan permintaan, memberikan anda fleksibiliti untuk memilih pendekatan yang paling sesuai dengan keperluan khusus anda.
Atas ialah kandungan terperinci Bolehkah Anda Melewati Berbilang Pembolehubah dalam Badan Permintaan kepada Pengawal MVC Spring Menggunakan Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!