สมมติว่าฉันมีหน้าเว็บที่แสดงรายการวัตถุบนตารางและฉันจำเป็นต้องใส่ฟอร์มเพื่อกรองตาราง ตัวกรองถูกส่งเป็น Ajax GET ไปยัง URL เช่นนั้น: http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z
และแทนที่จะมีพารามิเตอร์จำนวนมากในตัวควบคุมของฉันชอบ:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "prop1", required = false) String prop1,
@RequestParam(value = "prop2", required = false) String prop2,
@RequestParam(value = "prop3", required = false) String prop3) { ... }
และสมมติว่าฉันมี MyObject เป็น:
public class MyObject {
private String prop1;
private String prop2;
private String prop3;
//Getters and setters
...
}
ฉันต้องการทำสิ่งที่ชอบ:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "myObject", required = false) MyObject myObject,) { ... }
เป็นไปได้ไหม? ฉันจะทำสิ่งนั้นได้อย่างไร
@ModelAttribute
, ฤดูใบไม้ผลิ MVC แบบฟอร์มการจัดการตัวอย่าง เพียงแค่ google " Spring MVC form handling " และคุณจะได้รับบทเรียน / ตัวอย่างมากมาย แต่อย่าลืมใช้วิธีการจัดการรูปแบบที่ทันสมัยเช่น Spring v2.5 +
@ModelAttribute
ใน Spring MVC