【发布时间】:2011-05-26 12:32:14
【问题描述】:
我有一个会话 bean:
<managed-bean>
<managed-bean-name>mainMenuNavigationBean</managed-bean-name>
<managed-bean-class>com.cloud.common.jsf.core.beans.MainMenuNavigationBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
我将它注入到请求 bean 中:
<managed-bean>
<managed-bean-name>createAccountBean</managed-bean-name>
<managed-bean-class>com.cloud.common.jsf.account.CreateAccountBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>mainMenuNavigationBean</property-name>
<property-class>com.cloud.common.jsf.core.beans.MainMenuNavigationBean</property-class>
<value>#{mainMenuNavigationBean}</value>
</managed-property>
</managed-bean>
现在,我正在尝试在我的 createAccountBean 的 @PostConstruct 中使用设置器,但我不明白 为什么 mainMenuNavigationBean 在这里为空...我希望它在访问时自动创建(如果为空)创建AccountBean
@PostConstruct
public void init() {
userLoginVo = new UserLoginVo();
//NPE here
mainMenuNavigationBean.setExternalPage(true);
}
你能给我一个提示吗?我无法理解我做错了什么......
【问题讨论】:
-
应该可以。您是否正在运行您认为正在运行的
faces-config.xml?保存/重建/重新部署/重新启动/等。当然,还要阅读服务器日志以获取任何警告。