컨트롤러에서 읽을 수 있도록 HttpServletRequest에 속성을 추가하기 위해 Spring HandlerInterceptor를 설정했습니다. 슬프게도이 기능이 이상하게 보일 수 있습니다. 나는 잘못하고 있니? 인터셉터에서 컨트롤러로 데이터를 전송하는 방법에 대한 아이디어가 있습니까? 여기 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 ("내-역할")는 null를 돌려 두 영향 클래스의 간단한 코드입니다 ...하지만 난 postHandle에서 읽을 경우 제외 값을 반환 않습니다 HandlerInterceptor의 내가 뭔가를 놓치고있는 것 같은 느낌이 든다 ...
EDIT : "request.getSession(). setAttribute"가 세션으로 진행되는 것이 매력으로 작동한다는 것을 알았지 만, 아직도 이유를 이해하지 못한다. 이 사용 사례에서는 요청 자체가 작동하지 않습니다.
모든 요격 코드를 게시하십시오. – george