2010-07-19 90 views
2

我使用一個應用程序用SpringMVC以下措施:如何將對象列表綁定到SpringMvc控制器?

@RequestMapping(value = "/test", method = RequestMethod.GET) 
public ModelAndView test(
    @ModelAttribute List<Group> groups 
) { 
//return whatever 
} 

我的組類有一個「身份證」和「名」屬性。默認getter/setter。 我應該如何調用這個動作才能讓這個列表正確實例化?

我想是這樣的:
/test?groups.id=2 & groups.name = stackrocks & groups.id = 3 & groups.name = stackrules
沒有工作。

也試過:。
/test?groups[].id=2 &基團[]名稱= stackrocks &基團[] ID = 3個&基團[]名稱= stackrules
沒有成功。

那麼,如何在使用SpringMvc時綁定列表?

回答

6

您不能將方法的參數與該簽名完全綁定。 @ModelAttribute屬性綁定到相應的模型對象的字段,這樣你就可以封裝你List到對象:

public class Groups { 
    private List<Group> list = new AutoPopulatingList<Group>(Group.class); 
    ...  
} 

@RequestMapping(value = "/test", method = RequestMethod.GET) 
public ModelAndView test( 
    @ModelAttribute Groups groups 
) { 
//return whatever 
} 

,然後調用它,如下所示:

/test?list[0].id=2&list[0].name=stackrocks&list[1].id=3&list[1].name=stackrules 
+0

可悲的是,沒有成功。我完全按照你的建議,「list」屬性總是空的。任何其他想法? – goenning 2010-07-19 20:13:47

+0

@Guilherme:固定。 – axtavt 2010-07-19 20:21:20

+0

完美!有效!謝謝! – goenning 2010-07-19 20:29:15