一句话:@ManagedProperty
注解确实返回null
而不是注入属性。
细节:有两个类:
@ManagedBean(name="authFilter")
@SessionScoped
public class AuthFilter implements Filter {
@ManagedProperty("#{loginBean}")
private LoginBean loginBean;
public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
...
}
和
@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean {
...
}
现在,AFAIK@ManagedProperty
注释和设置器应该足以注入属性,或者至少此处的其他问题和 BalusC 的博客建议了这一点,但它仍然始终存在null
。
这也很有趣,并且可能与这个问题有关,我收到这些类的警告,它们已经注册为托管 bean,即使它们只是通过faces-config.xml
或使用注释注册。(分别尝试了它们的展位,没有区别。)如果它们都不存在,则警告消失,但@ManagedProperty
不起作用。
WARNING: JSF1074: Managed bean named 'confListBean' has already been registered. Replacing existing managed bean class type <projectname>.web.authFilter with <projectname>.web.authFilter.
所以问题是:
@ManagedProperty
注入我没有做的事情还需要什么?@notations
除了and之外,还有什么可能“过度注册”这些托管 beanfaces-config.xml
?是否有收集我可以检查的托管 bean 的过程的跟踪?