Rumah >Java >javaTutorial >Bagaimana untuk Lulus Berbilang Parameter ke Pengawal MVC Spring menggunakan @RequestBody dengan Ajax?

Bagaimana untuk Lulus Berbilang Parameter ke Pengawal MVC Spring menggunakan @RequestBody dengan Ajax?

Patricia Arquette
Patricia Arquetteasal
2024-11-11 12:47:021057semak imbas

How to Pass Multiple Parameters to a Spring MVC Controller using @RequestBody with Ajax?

Melalui Berbilang Parameter dalam @RequestBody kepada Pengawal MVC Spring menggunakan Ajax

Apabila cuba menghantar berbilang parameter kepada pengawal Spring MVC menggunakan @ RequestBody, ramai pembangun menghadapi persoalan sama ada perlu untuk membungkus parameter dalam sandaran objek.

Pendekatan Awal:

Pada mulanya, anda boleh cuba melakukan perkara berikut:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody String str1, @RequestBody String str2) {}

Dengan muatan JSON seperti ini:

{
    "str1": "test one",
    "str2": "two test"
}

Walau bagaimanapun, anda mungkin mendapati bahawa pendekatan ini tidak berfungsi sebagai dijangka.

Pendekatan Objek Pembungkus:

Untuk mengatasi isu ini, pendekatan seterusnya ialah membungkus parameter dalam objek sandaran:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Holder holder) {}

Ini memerlukan muatan JSON seperti ini:

{
    "holder": {
        "str1": "test one",
        "str2": "two test"
    }
}

Alternatif Pilihan:

Sebagai alternatif, anda boleh menukar RequestMethod kepada GET dan menggunakan @RequestParam dalam rentetan pertanyaan. Pilihan lain ialah menggunakan @PathVariable dengan sama ada RequestMethod.

Menggunakan Peta atau ObjectNode:

Jika membalut objek sokongan tidak diingini, anda boleh menggunakan Peta atau ObjectNode Jackson untuk mengikat berbilang parameter @RequestBody:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Map<String, String> json) {
    //json.get("str1") == "test one"
}

Atau:

public boolean getTest(@RequestBody ObjectNode json) {
    //json.get("str1").asText() == "test one"
}

Atas ialah kandungan terperinci Bagaimana untuk Lulus Berbilang Parameter ke Pengawal MVC Spring menggunakan @RequestBody dengan 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