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 は null です。

しかし、BBbean に名前を付けると、b1 Bean は null ではなくなります。

@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 の 2 つのインスタンスを持つことはできないと感じていますか?


オリジナルメッセージ :

別の Bean に 1 つの 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();
    }


    }

私の2番目の豆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ページには、次のような2つのBeanがあります。

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

問題は、これが正しく入力されていても、check メソッドが b1 に対して true を返さないことです。私のように進めることは可能ですか?そして、親クラスに 1 つの Bean のみのインスタンスを複数持つには?

4

0 に答える 0