Spring MVC Application - Как установить значение bean-объекта в области сеанса - PullRequest
3 голосов
/ 25 января 2010

В моем приложении мне нужно собрать информацию на одном экране, а затем отобразить ее на следующем.

Я решил сохранить эту информацию в компоненте с областью действия, установленной как сеанс (она будет использоваться на нескольких других экранах после начального экрана сбора данных)

Менеджер настроен следующим образом:

 <bean name="/springapp.htm" class="foo.bar.controller.springcontroller">
        <property name="sessionBeanManager" ref="sessionBeanManager" />
    </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>

но когда я загружаю страницу, значение пустое?

Мне кажется, что компонент загружается нормально, но не заполняется значением, что заставляет меня думать, что либо сессионный компонент не заполняется, либо компонент не создается как сессионный компонент?

Ответы [ 2 ]

8 голосов
/ 04 декабря 2010

Вы можете ссылаться на bean-компоненты Spring со следующим синтаксисом в вашем EL в jsp.

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

Это вызывает getFlashMessages () для этого компонента

<bean id="messageUtil" class="mypackage.MessageUtilImpl" scope="session">
    <aop:scoped-proxy proxy-target-class="false"/>
    <property name="messageSource" ref="messageSource" />
</bean>
2 голосов
/ 26 января 2010

Spring bean не видны в представлениях (JSP в вашем случае), если вы сначала не добавите их в модель.

Вы должны добавить свой sessionBean к модели в контроллере, чтобы сделать его доступным дляпросмотр.

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