gpt4 book ai didi

java - 如何通过@ManagedProperty 注解注入(inject)整个托管bean?

转载 作者:太空狗 更新时间:2023-10-29 22:50:45 26 4
gpt4 key购买 nike

我试图通过 @ManagedProperty 注释将整个 JSF 托管 bean 注入(inject)另一个托管 bean(非常类似于 Possible to inject @ManagedBean as a @ManagedProperty into @WebServlet? ,但我注入(inject)的是一个 bean,而不是一个 servlet ).这就是我正在做的:

@ManagedBean
public class Foo {
@ManagedProperty(value = "#{bar}")
private Bar bar;
}

@ManagedBean
public class Bar {
}

不起作用(JSF 2.0/Mojarra 2.0.3):

SEVERE: JSF will be unable to create managed bean foo when it is 
requested. The following problems where found:
- Property bar for managed bean foo does not exist. Check that
appropriate getter and/or setter methods exist.

完全有可能还是我需要通过 FacesContext 以编程方式执行此注入(inject)?

最佳答案

你需要添加setters和getters

@ManagedBean
public class Foo {
@ManagedProperty(value = "#{bar}")
private Bar bar;
//add setters and getters for bar
public Bar getBar(){
return this.bar;
}
public void setBar(Bar bar){
this.bar = bar;;
}
}

FacesContext 将解析并注入(inject)依赖项时,它将使用 setters 注入(inject),因此应该有适当的 setters/getters。否则它不会找到该属性

关于java - 如何通过@ManagedProperty 注解注入(inject)整个托管bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5165567/

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