Ich habe eine Ressource, die sowohl GET
als auch POST
Anfragen unterstützt. Hier ein Beispielcode für eine Beispielressource:
@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
}
Der Code in den beiden Methoden ist praktisch der gleiche, mit Ausnahme einer Variablendefinition. Die beiden Methoden können mit method = {RequestMethod.POST, RequestMethod.GET}
und einem einfachen if
Inneren leicht kombiniert werden . Ich habe es versucht, aber es funktioniert nicht, da die beiden Methoden am Ende einen unterschiedlichen Parameter haben, dh HttpServletRequest
und BindingResult
(die @RequestParam
sind nicht erforderlich und werden daher in der POST
Anforderung nicht benötigt ). Irgendwelche Ideen, wie man die beiden Methoden kombiniert?