5
커스텀 InternalResourceViewResolver 기반 리졸버에서 원래 요청의 HttpServletRequest 객체에 액세스하고 싶습니다. 이 작업을 수행하는 간단한 방법이 있습니까? 나는 봄 2.5를 여기에서 사용하고있다.Spring : 사용자 정의 ViewResolver에서 HttpServletRequest에 액세스하기
커스텀 InternalResourceViewResolver 기반 리졸버에서 원래 요청의 HttpServletRequest 객체에 액세스하고 싶습니다. 이 작업을 수행하는 간단한 방법이 있습니까? 나는 봄 2.5를 여기에서 사용하고있다.Spring : 사용자 정의 ViewResolver에서 HttpServletRequest에 액세스하기
ViewResolver
인터페이스는 현재 요청과 함께 제공되지 않으므로 구현도 수행되지 않습니다.
그러나, 당신은 요청 같은 것들을 저장하는 쓰레드 범위의 변수를 사용하는 RequestContextHolder
에서 현재 요청을 가져 오는 옵션이 있습니다, 그러나 그것은 꽤 아니다 :
((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
덕분에 많이. 이것은 트릭을 수행합니다. 이 기술의 부작용을 알고 있어야합니까? –
그 자체로 부작용은 없지만 문맥 소유자는 DispatcherServlet에 의해 초기화된다는 점에 유의하십시오. 귀하의 요청이 그것을 통과하는 한, 당신은 배경 스레딩으로 멍청한 일을 시작하지 않는 한 괜찮을 것입니다. – skaffman