@uthark에 의해 언급 된 @SessionAttribute
주석이이 작업에 적합하지 않습니다 - 나는 그것이라고 생각 너무,하지만 bit of reading sh OWS, 그렇지 않으면이 주석을 사용하여 표시로
세션 속성 특정 핸들러의 모델이 투명하게 대화 세션에 저장하기, 속성에 해당합니다. 해당 처리기가 처리기가 대화 세션의 완료를 나타내면이 속성이 제거됩니다. 따라서, 특정 핸들러의 대화의 과정에서 세션 일시적으로 에 저장 있어야하는 등의 대화 속성에 대한 이 기능을 사용합니다.
영구 세션 속성의 경우 사용자 인증 개체 대신 전통적인 session.setAttribute 메서드를 사용하십시오. 또는 WebRequest 인터페이스 일반 관리 기능을 사용하는 것이 좋습니다. 즉
는 @SessionAttribute
(요청 속성로 저장 반대) 세션에서 대화 MVC 모델 객체를 저장하기위한 것입니다. 그것은 임의의 세션 속성과 함께 사용하기위한 것이 아닙니다. 세션 속성이 항상있는 경우에만 작동합니다. 이 방법은 보안과 같은 크로스 커팅 문제에 대한
class SecurityContextHolder {
public static UserSecurityContext currentSecurityContext() {
return (UserSecurityContext)
RequestContextHolder.currentRequestAttributes()
.getAttribute("userSecurityCtx", RequestAttributes.SCOPE_SESSION));
}
}
...
@RequestMapping("/myHomePage")
public ModelAndView show() {
UserSecurityContext ctx = SecurityContextHolder.currentSecurityContext();
}
입니다 : 내가 다른 대안 잘 모르는 것 같아요
, 나는 당신이이 RequestContextHolder
사용할 수 있습니다 당신이 HttpSession.getAttribute()
관련 : http://stackoverflow.com/questions/3621266/how-to-pass-a-session-attribute-as-method-argument-parameter-with-spring-mvc – Bozho
여기에 봄 티켓의 [# SPR- 4452] (https : //jira.springsource.org/찾아보기/SPR-4452). 빠른 해상도를위한 Upvote 티켓. –