2010-07-19 37 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

相关问题