2014-06-21 7 views
1

세션을 삭제하려고합니다. 다음은 내가 쓴 코드 예제입니다. SessionStatus.status.setComplete()가 세션을 지우지 않았습니다.

@Controller 
@SessionAttributes(value={"sessAttr1","sessAttr2","sessAttr3"}) 
public class SessionController {  
@RequestMapping(value="index") 
public ModelAndView populateSession(){  
    ModelAndView modelView = new ModelAndView("home"); 
    modelView.addObject("sessAttr1","This value is added in a session 1"); 
    modelView.addObject("sessAttr2","This value is added in a session 2"); 
    modelView.addObject("sessAttr3","This value is added in a session 3"); 
    return modelView; 
} 

@RequestMapping(value="home1") 
public String populateHomeSession(SessionStatus status){ 
    status.setComplete(); 
    return "home1"; 
} 
} 

home1 화면이 표시되면, 나는 아직도 세션을 볼 수있는이 삭제 안한다 객체. 내가 이것을 시도하면 : ${sessAttr1 } 그러면 home1 화면에서 세션 값을 읽을 수 있습니다.

왜 작동하지 않는지 명확히하십시오.

편집

I 한 화면에서 다른로 이동 <a href="home1">Next</a>를 사용하여. 내가 직면하고있는이 isse와 관련이 있습니까? 그것은 바로 세션을 수정하고 전체적인 소리하지 않습니다

+0

사용 session.invalidate() – SpringLearner

+0

그게 잘 ... 내가 사용할 수는'뿐만 아니라 removeAttribute' 아니면 간단한 서블릿 응용 프로그램에서 사용하는 일부 다른 옵션을하지만 내 질문은 왜 위의 예제하지 않다 일. 이것에 대해 저에게 알려주세요. – user182944

답변

4

setComplete는 요청이 컨트롤러에 의해 처리 된 후 필요하지로 세션 속성을 표시하는 데 사용됩니다 사용할 수 있습니다 귀하의 유스 케이스에 적합하지 않은 것처럼. 현재 요청 중에 데이터를 사용하려고하는 POST와 같은 상황에서 사용하기위한 것이지만 앞으로는 사용해서는 안됩니다.

http://forum.spring.io/forum/spring-projects/web/108339-problem-with-sessionattribute-and-sessionstatus

+2

당신이 말했듯이 :'그것은 즉시 세션을 수정하지 않습니다.'실제로 세션이 언제 수정되는지 알고 싶습니까? – user182944

+0

나는 당신이 묻는 질문에 대답했습니다. 당신이 다른 질문을한다면 당신은 질문을 적절하게 수정해야합니다. –

0

당신은 invalidate()

@RequestMapping(value="home1") 
public String populateHomeSession(HttpservletRequest request){ 

HttpSession session=request.getSession(); 
session.invalidate(); 

    return "home1"; 
} 
+0

미리보기 주셔서 감사합니다하지만 그게 내가 원하는 무언가. 'removeAttribute' 또는 간단한 서블릿 애플리케이션에서 사용하는 다른 옵션을 사용할 수는 있지만 위 질문의 이유는 무엇입니까? 이것에 대해 저에게 알려주세요. – user182944

+0

내가 놓친 또 다른 일 : 내 jsp 화면에서 한 화면에서 다른 화면으로 이동하려면 'Next'을 사용합니다. 내가 직면하고있는이 isse와 관련이 있습니까? – user182944