Как привязать список объектов к SpringMvc Controller? - PullRequest
2 голосов
/ 19 июля 2010

Я использую следующее действие в приложении SpringMvc:

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

У класса моей группы есть свойство 'id' и 'name'. Получатель / установщик по умолчанию. Как мне вызвать это действие, чтобы правильно создать этот список?

Я пробовал что-то вроде:
/test?groups.id=2&groups.name=stackrocks&groups.id=3&groups.name=stackrules
Не сработало

Также пробовал:
/test?groups[].id=2&groups[].name=stackrocks&groups[].id=3&groups[].name=stackrules
Безуспешно.

Итак, как связать список при использовании SpringMvc?

1 Ответ

6 голосов
/ 19 июля 2010

Невозможно связать параметры метода именно с этой подписью. @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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...