0

我编辑以添加新信息:我尝试使用您所说的注释,但它仍然不起作用:

我的豆A:

@ManagedBean(name="abean")
@ViewScoped
public class ABean {

    @ManagedProperty(value="#{b1}")
    private BBean b1;
    @ManagedProperty(value="#{b2}")
    private BBean b2;

    // getter setter


}

我的豆B:

@ManagedBean
@SessionScoped
public class BBean {

    private String a;
    private String b;

    // getter setter

    public boolean check(){
        if (a != null && !a.isEmpty() && !a.equals("0")) {
            return true;
        } else return false;
    }

}

但它仍然不起作用,b1 和 b2 为空。

但是,如果我命名我的 BBbean,我的 b1 bean 不再为空:

@ManagedBean(name="b1")
@SessionScoped
public class BBean {

    private String a;
    private String b;

    // getter setter

    public boolean check(){
        if (a != null && !a.isEmpty() && !a.equals("0")) {
            return true;
        } else return false;
    }

}

所以,我觉得不可能有同一个 bean 的两个实例?


原始信息 :

我在另一个 bean 中有几个一个 bean 的实例。我无法正确使用这些豆子。

我的第一个豆 A :

public class ABean {

    @ManagedProperty(value="#{b1}")
    private BBean b1;
    @ManagedProperty(value="#{b2}")
    private BBean b2;

    @PostConstruct
    public void init(){
        b1 = new BBean();
        b2 = new BBean();
    }


    }

我的第二个豆B:

public class BBean {

    private String a;
    private String b;

    // getter setter

    public boolean check(){
        if (a != null && !a.isEmpty() && !a.equals("0")) {
            return true;
        } else return false;
    }

    }

两者都在 scopeView 中。

我的面孔-config.xml

<managed-bean>
  <managed-bean-name>aBean</managed-bean-name>
  <managed-bean-class>com.test.ABean</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
</managed-bean>
<managed-bean>
  <managed-bean-name>b1</managed-bean-name>
  <managed-bean-class>com.test.BBean</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
</managed-bean>
<managed-bean>
  <managed-bean-name>b2</managed-bean-name>
  <managed-bean-class>com.test.BBean</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
</managed-bean>    

在我的 xhtml 页面中,我有这样两个 bean:

#{aBean.b1.check()}
#{aBean.b2.check()}

问题是 check 方法永远不会为 b1 返回 true,即使该方法已正确填充。是否可以像我一样进行?然后在父类中只有一个 bean 的多个实例?

4

0 回答 0