Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengikat Objek Kompleks sebagai GET @RequestParam dalam Spring MVC?

Bagaimanakah Saya Boleh Mengikat Objek Kompleks sebagai GET @RequestParam dalam Spring MVC?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-20 15:48:13837semak imbas

How Can I Bind a Complex Object as a GET @RequestParam in Spring MVC?

MVC Musim Bunga: Mengikat Objek Kompleks sebagai GET @RequestParam

Masalah:

Pertimbangkan senario di mana anda mempunyai halaman menyenaraikan objek daripada jadual. Anda perlu menambah borang untuk menapis jadual menggunakan permintaan Ajax GET yang dihantar ke URL yang serupa dengan:

http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z

Daripada menggunakan banyak parameter @RequestParam pada kaedah pengawal, anda ingin mengikat keseluruhan penapis objek secara langsung.

Contoh:

Dengan andaian anda mempunyai kelas MyObject ditakrifkan sebagai:

public class MyObject {
    private String prop1;
    private String prop2;
    private String prop3;

    // Getters and setters
    // ...
}

Kaedah pengawal ideal anda akan kelihatan seperti ini:

@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
    @RequestParam(value = "page", required = false) int page,
    MyObject myObject)

Penyelesaian:

Spring menyediakan keupayaan untuk mengikat objek kompleks sebagai parameter @RequestParam. Untuk mencapai matlamat ini, cuma alih keluar anotasi @RequestParam daripada hujah kaedah anda:

@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
    @RequestParam(value = "page", required = false) int page,
    MyObject myObject)

Spring akan mengikat parameter permintaan secara automatik pada contoh MyObject anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikat Objek Kompleks sebagai GET @RequestParam dalam Spring MVC?. 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