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