Как передать атрибут сеанса в качестве аргумента метода (параметра) с Spring MVC

Короче говоря, я хочу что-то вроде:

public String action(@SessionAttribute User user) {..}

вместо

public String action(HttpSession session) {
     User user = session.getAttribute("user");
}

В основном ради:

  • читабельности
  • модульного тестирования
16
задан Sean Patrick Floyd 2 September 2010 в 08:02
поделиться

1 ответ

Я нашел решение.

Идея состоит в том, чтобы зарегистрировать собственный WebArgumentResolver для AnnotationMethodHandlerAdapter, который обрабатывает пользовательскую аннотацию — @SessionAttribute (или @SessionParam).

Одно примечание к опубликованному там коду состоит в том, что param.getParameterName() можно использовать, если значение не указано.

19
ответ дан 30 November 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: