Проблема с внедрением spring bean в jsf bean

#java #spring #jsf

#java #spring #jsf

Вопрос:

Я столкнулся с проблемой при внедрении spring bean в jsf bean, которая вызывает javax.faces.Исключение FacesException (не удается создать экземпляр класса), исключение javax.faces.el.EvaluationException

Вот мои XML-файлы:

Файл WEB-INF/components.xml определяет spring bean

 <beans>
    <bean id="rambo.api.VideoService" 
    class="rambo.impl.VideoServiceImpl">

            <!-- some properties ... -->
    </bean>
</beans>
  

Файл WEB-INF/faces-config.xml определите компоненты jsf

 <managed-bean>
    <description>Video Home Bean</description>
    <managed-bean-name>videoBean</managed-bean-name>
    <managed-bean-class>rambo.tool.VideoBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>

    <managed-property>
            <description>videoService</description>
            <property-name>videoService</property-name>
            <value>#{Components["rambo.api.VideoService"]}</value>
    </managed-property>
    <!-- Other properties -->
</managed-bean>
  

Файл videoMain.jsp:

В resourceToolExists: videoBean использует некоторые методы videoService

 <h:panelGroup rendered="#{! videoBean.resourceToolExists" >
    <%@ include file="videoNoResource.jsp" %>
</h:panelGroup>
  

Здесь получает:
javax.faces.Исключение FacesException (не удается создать экземпляр класса rambo.impl.VideoServiceImpl),
javax.faces.el.EvaluationException

Комментарии:

1. что такое #{Components["rambo.api.VideoService"]} ?

Ответ №1:

Вам нужно настроить spring elresolver в вас faces-config.xml файл. Spring elresolver оценит ваш el express и получит объект bean, определенный в spring Пожалуйста, проверьте http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/jsf/el/SpringBeanFacesELResolver.html