Ich habe eine Ressource, die sowohl GETals auch POSTAnfragen 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 ifInneren leicht kombiniert werden . Ich habe es versucht, aber es funktioniert nicht, da die beiden Methoden am Ende einen unterschiedlichen Parameter haben, dh HttpServletRequestund BindingResult(die @RequestParamsind nicht erforderlich und werden daher in der POSTAnforderung nicht benötigt ). Irgendwelche Ideen, wie man die beiden Methoden kombiniert?