Dependency injection JSF2.0+;素数文本编辑器

Dependency injection JSF2.0+;素数文本编辑器,dependency-injection,jsf-2,Dependency Injection,Jsf 2,除此之外,我还有另一个bean,比如A。我在A中有一个填充HTML表的方法。我想要的是,当用户打开编辑器时,它应该预先填充HTML表数据,当然,更改应该反映到(String:value)中。因此,你可以说我试图把这两个值联系在一起。我认为这需要用DI来完成,但不知何故它不起作用。如果有人能指导或引用一个例子,这将非常有帮助。一种方法是重写getValue()方法,从beanA中提取值。 是的,对A bean的引用应该来自DI: @ManagedBean(name = "editorBean")

除此之外,我还有另一个bean,比如A。我在A中有一个填充HTML表的方法。我想要的是,当用户打开编辑器时,它应该预先填充HTML表数据,当然,更改应该反映到(String:value)中。因此,你可以说我试图把这两个值联系在一起。我认为这需要用DI来完成,但不知何故它不起作用。如果有人能指导或引用一个例子,这将非常有帮助。

一种方法是重写
getValue()
方法,从bean
A
中提取值。 是的,对A bean的引用应该来自DI:

@ManagedBean(name = "editorBean")
@SessionScoped
public class EditorBean {
    private static final String MANAGED_BEAN_NAME = "editorBean";
    private String value;
    public static EditorBean getCurrentInstance() {
        return (EditorBean) FacesContext.getCurrentInstance()
            .getExternalContext().getRequestMap().get(MANAGED_BEAN_NAME);
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}
或者,使用CDI,只需:

//injecting a reference to A
@ManagedPropery(value="#{A}") //or whatever is the name of your bean
private A beanA;

public void setBeanA(A beanA) {
    this.beanA = beanA;
}
最后,您的
getValue
方法

@Inject private A beanA
@Inject private A beanA
public String getValue() {
    return beanA.getValue()
}