【发布时间】:2011-10-14 02:44:51
【问题描述】:
我正在尝试将 Spring 3 集成到 JSF 2 项目中。我registered faces-config.xml 中的 SpringBeanFacesELResolver 并在 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>
大多数视图和支持 bean 都可以正常工作,但不幸的是,javax.faces.event.PreRenderViewEvent 停止了工作。在呈现视图之前,我一直在使用此事件调用 backing-bean 中的方法:
<ui:define name="metadata">
<f:event type="javax.faces.event.PreRenderViewEvent"
listener="#{locationBean.preRenderView}" />
</ui:define>
使用 Spring 3 来创建 bean,不再调用 preRenderView 方法。对于我可能做错或遗漏的任何提示,我将不胜感激!
更新:
在同一个视图中,我正在尝试将参数绑定到支持 bean 的属性,如下所示:
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="id" value="#{locationBean.id}" label="id" />
</f:metadata>
</ui:define>
这也曾经使用“纯”JSF 2 工作,但使用 Spring 无法执行任何操作。
【问题讨论】: