【发布时间】:2011-09-05 18:44:29
【问题描述】:
问题描述:我注入的 Spring bean 定义为 JSF 支持 bean 的托管属性,但没有被实例化。当我检索托管 Bean 时,它总是出现空值。
我整天都在与这个作斗争,似乎 JSF 托管 Bean 不会从 Spring 中读取 applicationContext。我可以通过在支持 bean 中使用 FacesContext 手动拉出 bean,它会找到 bean,但是当我尝试通过 FacesConfig 注入它时,它总是显示为空。我在如何集成它下面包含了我的步骤。有什么建议?
配置
冰面 1.85
JSF 1.2(通过 ice faces servlet)
春季 3.0
Websphere 7.5(我认为是 eclipse 3.5)
Web.xml 配置更改
Spring 上下文加载器监听器
<listener>
<display-name>SpringListener</display-name>
<icon>
<small-icon>small.gif</small-icon>
<large-icon>large.gif</large-icon>
</icon>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
上下文配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/SpringConfig/SpringHelloWorld.xml
</param-value>
</context-param>
FacesContext 变化
变量解析器 - 又名胶水
<application><variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver></application>
托管 Bean
<managed-bean>
<managed-bean-name>testData</managed-bean-name>
<managed-bean-class>src.test.TestData</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>spring3HelloWorldBean</property-name>
<value>#{spring3HelloWorldBean}</value>
</managed-property>
</managed-bean>
Spring.xml 配置
<bean id="spring3HelloWorldBean" class="src.test.Spring3HelloWorld" />
提前致谢
【问题讨论】:
标签: spring jsf configuration