gpt4 book ai didi

jsf-2 - @ManagedProperty 注解返回 null 而不是注入(inject)属性

转载 作者:行者123 更新时间:2023-12-04 21:17:30 24 4
gpt4 key购买 nike

一句话:@ManagedProperty注释确实返回 null而不是注入(inject)属性。

细节:有两个类:

@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注释和 setter 应该足以注入(inject)属性,或者至少这里的其他问题和 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 还需要什么被注入(inject)我没有做什么?
  • 除了 @notations 之外,还有什么可能“过度注册”这些托管 bean?和 faces-config.xml ?是否有收集我可以检查的托管 bean 的过程的跟踪?
  • 最佳答案

    定义 loginBean 时,确保将 eager 标志设置为 true。

    @ManagedBean(name="loginBean", eager=true)

    这将确保创建 loginBean,即使它不是从 GUI 元素引用的。

    关于jsf-2 - @ManagedProperty 注解返回 null 而不是注入(inject)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577574/

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