@SessionAttributes 에러 질문요...
- 작성자 :
- 김*진
- 작성일 :
- 2010-04-06 10:25:49
- 조회수 :
- 4,524
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
샘플프로젝트 생성했을때 나오는 예제와 똑같이 컨트롤러에 @SessionAttributes(types=PopupVO.class) 선언해주고 메소드의 @ModelAttribute에 vo 객체를 넣어주었습니다. 그런데도 에러가 발생합니다
다른분들이 작성하신 글중에 저랑 비슷한 현상이 일어나신 분이 계셔서 답글을 보았는데 "...VO 파라미터 부분을 ModelAttribute로 지정하시거나.. 명시적으로 모델에 추가된(addAttribute 등)경우만.. SessionAttributes에 대상이 됩니다." 이란 답글에서 첫번째 경우는 제가 똑바로 한 것이라 생각되는데 명시적으로 모델에 추가하라는 말씀은 어느 부분에서 addAttribute 시키라는 것인지 잘 모르겟습니다
해결책을 부탁드립니다~
다른분들이 작성하신 글중에 저랑 비슷한 현상이 일어나신 분이 계셔서 답글을 보았는데 "...VO 파라미터 부분을 ModelAttribute로 지정하시거나.. 명시적으로 모델에 추가된(addAttribute 등)경우만.. SessionAttributes에 대상이 됩니다." 이란 답글에서 첫번째 경우는 제가 똑바로 한 것이라 생각되는데 명시적으로 모델에 추가하라는 말씀은 어느 부분에서 addAttribute 시키라는 것인지 잘 모르겟습니다
해결책을 부탁드립니다~
A
안녕하세요..
@ModelAttribute를 지정하면.. 해당 VO(또는 Object)을 model에 담아서 View(JSP)로 넘기도록 되어 있습니다.
즉 @SessionAttributes에 지정된 이름이 Controller의 메소드 파라미터의 @ModelAttribute에 지정된 이름으로 나타나야 해당 VO 정보가 session에 보관되는 방식입니다..
(The type-level @SessionAttributes annotation declares session attributes used by a specific handler. This will
typically list the names of model attributes which should be transparently stored in the session)
일반적으로는 @ModelAttribute 사용하시면.. session에 정보를 보관하실 수 있지만.. 추가적으로 addAttribute를 통해 model에 해당 이름(@SessionAttributes에 지정된 이름)으로 넣으시도 처리되도록 되어 있습니다.
일단.. @SessionAttributes에 지정된 이름이 호출되는 Controller 메소드의 파라미터 중 @ModelAttribute로 지정되고 해당 이름이 @SessionAttributes로 지정된 이름과 같은지 확이하시면 될 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
@ModelAttribute를 지정하면.. 해당 VO(또는 Object)을 model에 담아서 View(JSP)로 넘기도록 되어 있습니다.
즉 @SessionAttributes에 지정된 이름이 Controller의 메소드 파라미터의 @ModelAttribute에 지정된 이름으로 나타나야 해당 VO 정보가 session에 보관되는 방식입니다..
(The type-level @SessionAttributes annotation declares session attributes used by a specific handler. This will
typically list the names of model attributes which should be transparently stored in the session)
일반적으로는 @ModelAttribute 사용하시면.. session에 정보를 보관하실 수 있지만.. 추가적으로 addAttribute를 통해 model에 해당 이름(@SessionAttributes에 지정된 이름)으로 넣으시도 처리되도록 되어 있습니다.
일단.. @SessionAttributes에 지정된 이름이 호출되는 Controller 메소드의 파라미터 중 @ModelAttribute로 지정되고 해당 이름이 @SessionAttributes로 지정된 이름과 같은지 확이하시면 될 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.