Я попытался найти ответ на этот вопрос как на форуме Spring, так и в поиске StackOverflow. Я нашел много страниц, описывающих ужасные архитектуры и просящих примерно то же самое, что и я, но мое предполагаемое использование отличается, поэтому, пожалуйста, потерпите меня: -)
У меня есть проект Spring 2.5, использующий контроллеры форм на основе аннотаций, в основном такие:
@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";
}
}
В этом я проверяю некоторые свойства http в HttpServletRequest и использую HttpServletResponse для отправки перенаправления, если это свойство имеет определенное значение. Эта проверка выполняется во многих (но не во всех) контроллерах форм в этом приложении. Я хотел бы создать аннотацию @CheckedSubmit, обработанную некоторыми советами AOP, чтобы выполнить эту проверку, а затем отбросить параметры HttpServletRequest и HttpServletResponse из контроллера.
Моя проблема в том, что я не знаю, как получить доступ к текущим HttpServletRequest и HttpServletResponse из этого совета AOP, не используя эти два параметра как (неиспользуемые) для аннотированного метода, чего я и пытался избежать в первую очередь. 1008 *
Резюме: Как получить доступ к HttpServletRequest / Response из рекомендации AOP по аннотированному методу @RequestMapping?