我有一个支持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
并不好。 - user1120144