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
Linda Hamiltonasal
2024-11-11 12:40:031097semak imbas

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) {}

memerlukan struktur JSON dengan setiap pembolehubah diisytiharkan secara eksplisit:

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

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) {}

yang boleh digunakan dengan JSON berikut:

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

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"
}

Untuk ObjectNode:

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

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:
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