Combine los métodos de solicitud GET y POST en Spring
Tengo un recurso que soporta tantoGET
yPOST
peticiones. Aquí un código de muestra para un recurso de muestra:
@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
}
El código en los dos métodos es prácticamente el mismo, excepto por decir una definición variable. Los dos métodos se pueden combinar fácilmente usandomethod = {RequestMethod.POST, RequestMethod.GET}
, y un simpleif
dentro. Lo intenté, pero no funciona, porque los dos métodos tienen un parámetro diferente al final, es decir,HttpServletRequest
yBindingResult
(la@RequestParam
No son requeridos y por lo tanto no son necesarios en elPOST
solicitud). ¿Alguna idea de cómo combinar los dos métodos?