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
1041 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!

sumber:php.cn
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