Я пытаюсь интегрировать Spring 3 в проект JSF 2.Я зарегистрировал SpringBeanFacesELResolver в face-config.xml и добавил двух слушателей в файл web.xml:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
Большинство представлений и вспомогательных компонентов работают, но, к сожалению,javax.faces.event.PreRenderViewEvent
перестал функционировать.Я использовал это событие для вызова метода в компоненте поддержки перед обработкой представления:
<ui:define name="metadata">
<f:event type="javax.faces.event.PreRenderViewEvent"
listener="#{locationBean.preRenderView}" />
</ui:define>
При наличии Spring 3 для создания компонента метод preRenderView
больше не вызывается.Я был бы очень признателен за любую подсказку о том, что я могу делать неправильно или пропустить!
Обновление:
В том же виде я пытаюсь связать параметрк свойству бэк-бина, как это:
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="id" value="#{locationBean.id}" label="id" />
</f:metadata>
</ui:define>
Это также используется для работы с использованием "чистого" JSF 2, но не может ничего сделать с помощью Spring.