Soalan:
Bagaimana anda boleh melepasi berbilang pembolehubah dalam badan permintaan HTTP kepada pengawal Spring MVC menggunakan Ajax? Secara khusus, bolehkah anda menggunakan @RequestBody dengan parameter individu, atau adakah ia memerlukan objek pembalut?
Jawapan:
Walaupun @RequestBody biasanya memetakan ke satu objek, anda boleh mencapai matlamat anda menggunakan salah satu daripada kaedah berikut:
Pilihan 1: Menggunakan Peta
Untuk mengelak daripada mencipta objek sokongan tersuai, anda boleh memetakan @RequestBody ke Map
@RequestMapping(value = "/Test", method = RequestMethod.POST) @ResponseBody public boolean getTest(@RequestBody Map<String, String> json) { //json.get("str1") == "test one" }
Ini membolehkan anda mengakses pembolehubah individu daripada JSON sebagai sifat peta.
Pilihan 2: Menggunakan ObjectNode
Jika anda lebih suka bekerja dengan pepohon JSON penuh, anda boleh mengikat @RequestBody ke Jackson's ObjectNode:
public boolean getTest(@RequestBody ObjectNode json) { //json.get("str1").asText() == "test one" }
Ini memberi anda akses terus kepada struktur JSON dan pelbagai nodnya.
Perbandingan:
Kedua-dua pilihan menawarkan pendekatan berbeza untuk mengendalikan berbilang pembolehubah dalam @RequestBody:
Akhirnya, yang terbaik pilihan bergantung pada keperluan khusus aplikasi anda dan tahap fleksibiliti yang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Melepasi Pelbagai Pembolehubah dalam @RequestBody Menggunakan Ajax dan Spring MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!