Я установил Spring HandlerInterceptor для добавления атрибута в HttpServletRequest, чтобы читать его с контроллера, к сожалению, это не работает, что кажется мне странным. Я что-то делаю неправильно? Любая идея, как передавать данные от перехватчика на контроллер?Spring 3 HandlerInterceptor передаёт информацию контроллеру
Вот упрощенный код из двух повлиявших классов
public class RequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
request.setAttribute("my-role", "superman");
}
[...]
}
@RestController
@RequestMapping("Test")
public class TestController {
public final Logger logger = LoggerFactory.getLogger(getClass());
@RequestMapping(value = "something")
public void something(HttpServletRequest request) {
logger.info(request.getAttribute("my-role"));
}
[...]
}
request.getAttribute («моя-роль») возвращает нуль ... но вернуть изъятое значение, если я прочитал в postHandle из HandlerInterceptor, я чувствую, что мне что-то не хватает ...
EDIT: Я узнал, что через сеанс с помощью функции request.getSession() setAttribute работает как прелесть, но я не понимаю, почему сам запрос не работает в этом случае использования.
после всех ваших перехватчика кода – george