代码之家  ›  专栏  ›  技术社区  ›  goenning

如何将对象列表绑定到SpringMvc控制器?

  •  2
  • goenning  · 技术社区  · 14 年前

    我在SpringMvc应用程序上使用以下操作:

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

    我应该如何调用此操作才能正确实例化此列表?

    我试过这样的方法:
    /测试组id=2&groups.name=stackrocks&groups.id=3&groups.name=堆叠规则
    没用。

    也尝试过:
    /测试组[]。id=2&groups[].name=stackrocks&组[]。id=3&groups[].name=堆栈规则

    那么,在使用SpringMvc时如何绑定列表呢?

    1 回复  |  直到 14 年前
        1
  •  6
  •   axtavt    14 年前

    不能将方法的参数和该签名绑定在一起。 @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