Доступ к бинам контекста весеннего веб-приложения в выражении EL - PullRequest
1 голос
/ 26 октября 2010

Я новичок в Spring MVC и имею следующую ситуацию:

В WEB-INF / demoshop-servlet.xml у меня есть следующая строка:

<bean id="someBean" class="com.xxx.xxx.web.SomeBean" />

У меня также естьJSP, который содержит строку вроде:

${someBean.someAttribute}

Я ожидал, что атрибут читается из бина, когда страница отображается, но это не так.Выражение просто игнорируется.(В то время как другие выражения EL с объектами, введенными в ModelMap в контроллере, оцениваются правильно.)

Для небольшой отладки я вставил в JSP следующее:

<% System.out.println(application.getAttribute("someBean")); %>

печатает null.

Чего не хватает или что я тут не так делаю?

Ответы [ 2 ]

1 голос
/ 17 декабря 2014

Здесь есть метод, вы можете получить Spring bean в JSP-файле без Java-кода. Установите XML-файл Spring Web MVC и добавьте 1 свойство в viewResolver:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="exposeContextBeansAsAttributes" value="true"/>
</bean>

Теперь вы можете получить содержимое bean-компонента в JSP следующим образом:

<c:out value="${ bean.value }" />
1 голос
/ 26 октября 2010

Spring bean-компоненты не становятся автоматически доступными для страницы JSP, вы должны поместить bean-компонент в соответствующую область (приложение, сеанс, запрос или страница).У вас есть по крайней мере следующие варианты:

  1. Добавьте компонент к Model в вашем контроллере
  2. Расширьте класс View и добавьте компонент к Model.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...