次の問題があります。 (jboss 7.1 as、jsf 2、myFaces拡張フィルタ)@Injectは、毎回新しいインスタンスを注入しています。
2つのマネージドBean。 (私はコードを整理しました)。 NextBeanからLoginBeanを取得したい。問題は、Beanを挿入するたびにLoginBeanの新しいインスタンスが取得され、現在のインスタンスは取得されないということです。 @Named( "name")のようなものを試しました。 Bean自体(両方)はjsfページから呼び出され、すべてのデータが設定されますが、毎回新しいインスタンスが挿入され、何が間違っているのか把握できません。
@Named
@SessionScoped
public class LoginBean implements Serializable {
private static final long serialVersionUID = -8825740128333470396L;
@EJB private UserDetailDao userDetailDao;
private String description;
public String getDscription() { return description; }
public String submit() {
userDetailDao.doSomething("test");
description = "testing";
return "next.xhtml";
}
}
と第二のBean
@Named
@SessionScoped
public class NextBean extends SomeBean implements Serializable {
private static final long serialVersionUID = -4654827059950265300L;
@Inject private LoginBean loginBean;
public String submit() {
String description = loginBean.getDscription();
return "login.xhtml";
}
}
「説明」が設定されていると私は、JSFページでそれを見ることができますが、それは新しいインスタンスを毎回注入するので、私はNextBeanからアクセスするカント!しかし、データはセッション中です!
:/
ヒントはありますか? ありがとうございます!
あなたは同じセッションですか? –
新しいものは作成されません。上記の2つは@PostConstructを持っていれば作成され、一度初期化され、上記のBeanに挿入された値はそれぞれのjsfビューに含まれます:/ – Dimman
正しい(CDI)SessionScopedクラスをインポートしましたか: javax.enterprise.context.SessionScoped'? –