Rumah >Java >javaTutorial >Bolehkah Anda Melewati Berbilang Pembolehubah dalam Badan Permintaan kepada Pengawal MVC Spring Menggunakan Ajax?

Bolehkah Anda Melewati Berbilang Pembolehubah dalam Badan Permintaan kepada Pengawal MVC Spring Menggunakan Ajax?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 02:04:021085semak imbas

Can You Pass Multiple Variables in a Request Body to a Spring MVC Controller Using Ajax?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn