新しい情報を追加するために編集します:あなたが言ったように注釈を使用しようとしましたが、それでも機能しません:
私の豆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 のみのインスタンスを複数持つには?