Как Spring кодирует POJO в GET-запросах для @ModelAttribute?

У меня Spring MVC контроллер настроен так:

@RequestMapping("activityChart")
public ModelAndView activityChart(
  @RequestParam(required=false, value="parent") String parent,
  @RequestParam(required=false, value="expand") String[] expand,
  @ModelAttribute PaginationArgs paginationargs) throws IOException {

// ... return template renderer

}

Где PaginationArgs - это два поля POJO. Я хочу построить строку URL, которая включает в себя значения для paginationargs, Это легко сделать для parent а также expand - activityChart?parent=foo&expand=bar&expand=baz, но как правильно кодировать поля POJO?

JSP позаботится об этом весной <form:form modelAttribute='paginationargs'> тег, но в нашем проекте используется не JSP, а Jamon.

1 ответ

Решение

В простом случае имена параметров должны совпадать с именами соответствующих полей объекта модели. Так что если PaginationArgs имеет поля page а также sizeбыло бы как page=1&size=10,

В более сложных случаях Spring может принимать параметры, имена которых сформированы, как описано в 5.4 Управление объектами Bean и BeanWrapper.

Другие вопросы по тегам