gpt4 book ai didi

将 Spring bean 注入(inject) JSF Managed Beans

转载 作者:行者123 更新时间:2023-12-02 05:31:34 27 4
gpt4 key购买 nike

问题描述:我注入(inject)的 Spring bean 定义为 JSF 支持 bean 的托管属性没有被实例化。当我检索托管 Bean 时,它总是出现空值。

我一整天都在为此苦苦挣扎,似乎 JSF Managed Bean 不会从 Spring 中读取 applicationContext。我可以通过在支持 bean 中使用 FacesContext 手动拉出 bean,它找到了 bean,但是当我尝试通过 FacesConfig 注入(inject)它时,它总是出现 null。我在下面介绍了我如何集成它的步骤。有什么建议么?

配置

冰面 1.85

JSF 1.2(通过 ice faces servlet)

Spring 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" />

提前致谢

最佳答案

首先,我认为这是您的问题,即 DelegatingVariableResolver 在 1.1 之后的所有 JSF 版本中都已弃用,而您使用的是 1.2,因此请使用以下配置。

<application> 
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>

希望对您有所帮助。

关于将 Spring bean 注入(inject) JSF Managed Beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6192914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com