복붙노트

[SPRING] Spring MVC 애플리케이션 - 세션 범위의 빈 값을 어떻게 설정 하는가?

SPRING

Spring MVC 애플리케이션 - 세션 범위의 빈 값을 어떻게 설정 하는가?

내 응용 프로그램에서 한 화면에 정보를 수집하고 다음 화면에 정보를 표시해야합니다.

이 정보를 세션으로 설정된 범위의 bean에 저장하도록 선택했습니다 (초기 데이터 수집 화면 이후에 여러 다른 화면에서 사용됨)

Manager는 다음과 같이 구성됩니다.

 <bean name="/springapp.htm" class="foo.bar.controller.springcontroller">
        <property name="sessionBeanManager" ref="sessionBeanManager" />
    </bean>

bean은 다음과 같이 구성됩니다.

<bean id="sessionBean" class="foo.bar.sessionBean" scope="session">
    <aop:scoped-proxy/>
   <property name="beanValue" value="defaultValue" />
</bean>

<bean id="sessionBeanManager" class="foo.bar.sessionBeanManagerImpl">
    <property name="sessionBean" ref="sessionBean"/>
</bean>

그리고 JSP 페이지에서 출력하고 있습니다.

<c:out value="${sessionBean.beanValue}"></c:out>

하지만 페이지를로드 할 때마다 값이 비어 있습니까?

Bean이 OK를로드하고 있지만 값으로 채워지지 않은 것으로 보입니다. 세션 빈이 채워지지 않았거나 Bean이 세션 빈으로 생성되지 않는다고 생각하게합니까?

해결법

  1. ==============================

    1.봄 빈은 먼저 모델에 추가하지 않는 한 뷰 (JSP)에 표시되지 않습니다.

    봄 빈은 먼저 모델에 추가하지 않는 한 뷰 (JSP)에 표시되지 않습니다.

    뷰에서 사용할 수 있도록 컨트롤러의 모델에 sessionBean을 추가해야합니다.

    model.addAttribute("sessionBean", sessionBean);
    
  2. ==============================

    2.jsp의 EL에서 다음 구문을 사용하여 스프링 세션 빈을 참조 할 수 있습니다.

    jsp의 EL에서 다음 구문을 사용하여 스프링 세션 빈을 참조 할 수 있습니다.

    ${sessionScope['scopedTarget.messageUtil'].flashMessages}
    

    이 bean에서 getFlashMessages ()를 호출합니다.

    <bean id="messageUtil" class="mypackage.MessageUtilImpl" scope="session">
        <aop:scoped-proxy proxy-target-class="false"/>
        <property name="messageSource" ref="messageSource" />
    </bean>
    
  3. from https://stackoverflow.com/questions/2132928/spring-mvc-application-how-do-i-set-a-session-scoped-bean-value by cc-by-sa and MIT license