我有同时支持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
and BindingResult
((@RequestParam
不需要,因此在POST
请求中不需要)。任何想法如何结合这两种方法?