我有一个会话beanauto -instantiate会话bean?
<managed-bean>
<managed-bean-name>vdcAddBean</managed-bean-name>
<managed-bean-class>com.cloud.appsportfolio.jsf.vdc.beans.VDCAddBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
现在,我注入这个bean到一个请求之一:
<managed-bean>
<managed-bean-name>providerSelectionBean</managed-bean-name>
<managed-bean-class>com.cloud.appsportfolio.jsf.sourcing.ProviderSelectionBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>vdcAddBean</property-name>
<property-class>com.cloud.appsportfolio.jsf.vdc.beans.VDCAddBean</property-class>
<value>#{sessionScope.vdcAddBean}</value>
</managed-property>
</managed-bean>
好吧,当我访问vdcAddBean在providerSelectionBean
Java代码,我收到了NPE因为vdcAddBean
尚未初始化。如果我先进入我的菜单,在后端有vdcAddBean
的页面中,并且返回到providerSelectionBean
所有的作品都很棒,因为vdcAddBean
似乎已经初始化。
现在的问题是:如何在访问providerSelectionBean
bean时强制vdcAddBean被初始化(如果为空)?
谢谢。
您是否试图访问providerSelectionBean的Constructor中的vdcAddBean并获取空指针?如果是这样,你可以将依赖于vdcAddBean的逻辑移入setVdcAddBean()方法并避免NP。 – 2011-05-18 11:38:35