2013-07-26 3 views
0

Am @SessionAttributes SpringMVC를 유지 관리해야합니다.Spring MVC - Session Attributes - 모든 컨트롤러에서 ModelAttribute로 전달되어야합니다.

말, 현재 SessionObject

Class controller{ 

public ModelAndView method1(@ModelAttribute("user")){ } 
public ModelAndView method2(@ModelAttribute("user")){ } 
public ModelAndView method3(@ModelAttribute("user")){ } 
public ModelAndView method4(@ModelAttribute("user")){ } 

} 

이 유일한 방법입니다

같은 " 사용자"를 사용하는 데 필요한 모든 컨트롤러에 ModelAttribute 모 데르로 객체를 전달하고

@SessionAttribute("user")?

또는

다른 방법이 있습니까? 기본 컨트롤러를 확장 할 수 있으므로 기본 컨트롤러를 가질 수 있으므로 세션 컨트롤러를 확장하여 세션 개체를 반환 할 수 있습니다. 난 당신이 필터링 할 수있는 봄 보안 또는 다른 인증 메커니즘을 사용하여 시작하는 것이 좋습니다

String user = (String) hsr.getSession().getAttribute("user"); 

당신이 인증의 일종을 찾고 있다면 :

답변

0

는 내가 내 프로젝트의 일부에 사용했던 것은 이것이다 역할 또는 인증 상태에 따라 페이지. 당신의 정확한 요구 사항이 무엇인지,하지만 컨트롤러에 액세스 할 수 있습니다 세션과의 ThreadLocal에 저장을에서 값을 읽는 필터/인터셉터를 만드는 방법에 대한하지

0

@SessionAttributes에 액세스 할 필요가있는 컨트롤러 다음과 같이 주석을 추가해야합니다.

@Controller 
@SessionAttributes({"user"}) 
public class Controller { 
    ............. 
} 

HTH

+0

그게 전부의 벌금을! 묻는 오전, 내가 반복적으로 인수로 어디서나 전달해야합니까 ?? – madhairsilence

+0

아니요. 하지만 내 경험상 보안상의 이유로 다른 사용자의 데이터를 가져 오지 않기 때문에해야합니다. 세션을 통해 해당 사용자의 고유 한 데이터에 액세스 할 수 있습니다. HTH –

+0

이해하시기 바랍니다. – madhairsilence

관련 문제