#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