Как 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.