Inject
の代わりに使い始めていますManagedProperty
。いくつかのテストを行いましたが、そのうちの 1 つで、ViewScoped
Bean ( ) を同じスコープを持つBean1
別の ( )に注入します。Bean2
@Inject
private Bean1 bean1;
Bean1 にはitem
アーティストを表す変数があり、アーティストには、名前、アルバムのリストなど、さまざまなフィールドがあります。
Bean2 では、Bean1 のアイテムにアクセスする必要があります。
Artist artist = bean1.getItem();
その行にブレークポイントを設定して内容をBean1
確認すると、変数が表示されますitem
が、展開するitem
とフィールドが設定されません。
getItem()
デバッガーでメソッドにステップ インしようとすると、次のメッセージが表示されます。
Thread http-listener-1(2) stopped at beans.Bean1$Proxy$_$$_WeldClientProxy.getItem - compiled without debug info.
デバッガーで 1 行下に移動してartist
変数を確認すると、すべてのフィールドが正しい値に設定されています。それはどうしてですか?すべてがnullになる前に。
Edit1 : に置き換えInject
、からにManagedProperty
変更し、デバッグに関して同じ手順を実行すると、 のフィールドが設定されていることがわかります。メソッドにステップインすることもできます。javax.faces.view.ViewScoped
javax.faces.bean.ViewScoped
item
getItem()