Короче говоря, я хочу что-то вроде:
public String action(@SessionAttribute User user) {..}
вместо
public String action(HttpSession session) {
User user = session.getAttribute("user");
}
В основном ради:
Я нашел решение.
Идея состоит в том, чтобы зарегистрировать собственный WebArgumentResolver
для AnnotationMethodHandlerAdapter
, который обрабатывает пользовательскую аннотацию — @SessionAttribute
(или @SessionParam
).
Одно примечание к опубликованному там коду состоит в том, что param.getParameterName()
можно использовать, если значение
не указано.