У меня есть ресурс, который поддерживает запросы GET
и POST
. Вот пример кода для примера ресурса:
@RequestMapping(value = "/books", method = RequestMethod.GET)
public ModelAndView listBooks(@ModelAttribute("booksFilter") BooksFilter filter, two @RequestParam parameters, HttpServletRequest request)
throws ParseException {
LONG CODE
}
@RequestMapping(value = "/books", method = RequestMethod.POST)
public ModelAndView listBooksPOST(@ModelAttribute("booksFilter") BooksFilter filter, BindingResult result)
throws ParseException {
SAME LONG CODE with a minor difference
}
Код в этих двух методах практически одинаков, за исключением, скажем, определения переменной. Два метода можно легко комбинировать, используя method = {RequestMethod.POST, RequestMethod.GET}
и простой if
внутри. Я пытался, но это не работает, потому что два метода имеют разные параметры в конце, то есть HttpServletRequest
и BindingResult
(@RequestParam
не требуются и, следовательно, не нужны в запросе POST
). Любые идеи, как объединить два метода?
booksLogic
, который является единственным, что я вызываю в двух методах. - person   schedule 01.08.2013