2014-01-08 4 views
3

검색 횟수가 너무 많아서 답변을 찾을 수 없습니다.모델 속성은 어디에 저장됩니까?

여기서 모델 객체 값은 Spring에 저장됩니다.

model.addAttributes("key","values") 값이 (예 : 세션, 요청)으로 저장되는 곳입니다.이 범위는 무엇입니까?

expression language과 같은 ${key}을 사용하여 JSP에 저장된 값의 값을 어떻게 얻을 수 있습니까?

ELmodel에 저장된 값을 검색하는 방법은 무엇입니까?

+0

가능한 복제본 [JSP로 전달되는 스프링 모델은 어디로 이동합니까?] (http://stackoverflow.com/questions/4441729/where-does-the-spring-model-that-is-passed -to-a-jsp-go-to) – zeroflagL

답변

2

@SessionAttributes으로 수정하지 않는 이상 요청에 포함됩니다. 리디렉션을 수행하는 경우 요청 속성이 손실됩니다. 그것은 새로운 요청입니다. 두 번째와 세 번째 질문에 대한
은 어떤 스프링 MVC 응용 프로그램의 진입 점입니다 각 요청에 대한 새로운 ModelAndViewContainer 객체를 생성이 링크 Where does the Spring Model that is passed to a JSP goes to?

+0

모델 속성이 요청 또는 세션에 저장되지 않습니다. –

3

DispatcherServlet에 의해 해결된다. 이 클래스의 javadoc에서는

기록 모델과 컨트롤러 메소드의 호출 과정에서 HandlerMethodArgumentResolversHandlerMethodReturnValueHandlers 에 의해 만들어보기 관련 의사 결정을 말한다.

두 인터페이스는 사용자의 @RequestMapping 주석 처리 된 메소드 인수 및 반환 값을 처리합니다.

따라서 요청의 수명주기 동안 모델 속성은이 ModelAndViewContainer 개체의 ModelMap 필드에 저장됩니다. 실제, 현재 구현은 BindingAwareModelMap입니다.

뷰의 렌더링이 필요할 때 일부 View 개체는 모델 특성을 HttpServletRequest 특성과 병합합니다.

EL이 모델에서 저장된 값을 검색하는 방법은 무엇입니까?

아니요. EL은 JSP 페이지 범위 인 HttpServletRequest, HttpSession 또는 ServletContext에서 속성을 결정합니다.

관련 문제