2012-03-07 7 views
0

次の問題があります。 (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からアクセスするカント!しかし、データはセッション中です!

:/

ヒントはありますか? ありがとうございます!

+0

あなたは同じセッションですか? –

+0

新しいものは作成されません。上記の2つは@PostConstructを持っていれば作成され、一度初期化され、上記のBeanに挿入された値はそれぞれのjsfビューに含まれます:/ – Dimman

+0

正しい(CDI)SessionScopedクラスをインポートしましたか: javax.enterprise.context.SessionScoped'? –

答えて

0

私は間違った名前を付けていました!適切な@Producesを使用していませんでした:/

あなたのタイムズのためにありがとう。

関連する問題