Rumah > Java > javaTutorial > Bolehkah saya Lulus Berbilang Pembolehubah kepada Pengawal Spring MVC dengan @RequestBody tanpa Objek Sandaran?

Bolehkah saya Lulus Berbilang Pembolehubah kepada Pengawal Spring MVC dengan @RequestBody tanpa Objek Sandaran?

Linda Hamilton
Lepaskan: 2024-11-11 12:40:03
asal
1101 orang telah melayarinya

Can I Pass Multiple Variables to a Spring MVC Controller with @RequestBody without a Backing Object?

Melalui Berbilang Pembolehubah dalam @RequestBody kepada Pengawal Spring MVC dengan Ajax

Soalan:

Adakah parameter pembalut dalam objek sandaran diperlukan untuk menghantar berbilang pembolehubah dalam @RequestBody kepada pengawal Spring MVC dengan Ajax?

Perbincangan:

Persoalannya berpunca daripada keperluan untuk lulus dua rentetan, "str1" dan "str2," sebagai JSON dalam @RequestBody. Walau bagaimanapun, pendekatan awal:

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

memerlukan struktur JSON dengan setiap pembolehubah diisytiharkan secara eksplisit:

{
    "str1": "test one",
    "str2": "two test"
}
Salin selepas log masuk

Walau bagaimanapun, adalah lebih mudah untuk menggunakan objek sokongan, seperti yang dilihat dalam:

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

yang boleh digunakan dengan JSON berikut:

{
    "holder": {
        "str1": "test one",
        "str2": "two test"
    }
}
Salin selepas log masuk

Jawapan:

Walaupun menggunakan objek sokongan adalah pendekatan yang berdaya maju , penyelesaian alternatif ialah menggunakan Map atau ObjectNode untuk mengikat terus ke JSON tanpa membuat kelas objek yang berasingan.

Untuk Peta:

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

Untuk ObjectNode:

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

Atas ialah kandungan terperinci Bolehkah saya Lulus Berbilang Pembolehubah kepada Pengawal Spring MVC dengan @RequestBody tanpa Objek Sandaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan