Próbowałem znaleźć odpowiedź na to pytanie zarówno na forum Spring, jak i przeszukując StackOverflow. Znalazłem wiele stron opisujących okropne architektury i pytając o to samo co ja, ale moje zamierzone użycie jest inne, więc proszę o mnie :-)Uzyskiwanie dostępu do HttpServletRequest z porady AOP w Spring 2.5 z adnotacjami
Mam projekt Spring 2.5 za pomocą kontrolerów formularzy opartych na adnotacjach w zasadzie tak:
@RequestMapping("/edit/someObject")
public String handleSubmit(HttpServletRequest request, HttpServletResponse response, SomeObject someObject, BindingResult result) {
// Some check here
if(result.hasErrors()) {
return "form";
} else {
SomeObjectService.update(someObject);
return "redirect:/view/someObject";
}
}
w tym sprawdzić jakiegoś własności http w HttpServletRequest i użyć HttpServletResponse wysłać przekierowanie jeśli ta właściwość ma pewną wartość. Ta kontrola jest dużo (ale nie wszystkie) kontrolerów formularzy w tej aplikacji. Chciałbym utworzyć adnotację @CheckedSubmit obsługiwaną przez niektóre porady AOP, aby wykonać to sprawdzenie, a następnie usunąć parametry HttpServletRequest i HttpServletResponse z kontrolera.
Mój problem polega na tym, że nie mam pojęcia, jak uzyskać dostęp do bieżących HttpServletRequest i HttpServletResponse z tej porady AOP bez użycia tych dwóch (nieużywanych) parametrów w metodzie z adnotacjami, czego starałem się przede wszystkim unikać.
Podsumowanie: Jak uzyskać dostęp do porady HttpServletRequest/Response z AOP na temat metody adnotacji @RequestMapping?
Po dodaniu uwagi, że rozwiązanie 2 działa dla obiektów nie utworzonych przez wiosnę, gdy używana jest funkcja @Configurable (wymaga AspectJ) – Tomas