HttpServletRequestに属性を追加してコントローラから読み込めるようにSpring HandlerInterceptorをセットアップしましたが、悲しいことにこれはうまくいきません。私は間違ったことをしていますか?どのようにしてインターセプタからコントローラにデータを送信するのか?ここでSpring 3 HandlerInterceptorがコントローラに情報を渡す
は2つの影響を受けるクラス
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(「私の役割」)の単純化されたコードは、nullを返します...しかし、私はpostHandleでそれを読む場合は除外値を返すんですHandlerInterceptorのうち、私は何かが欠けているように感じる...
編集:私は、 "request.getSession()。setAttribute"とのセッションが、魅力として働いているが、それでも私は理由を理解していない要求自体はこの使用例では機能しません。
すべてのインターセプタコードを投稿してください。 – george