Injectの代わりに使い始めていますManagedProperty。いくつかのテストを行いましたが、そのうちの 1 つで、ViewScopedBean ( ) を同じスコープを持つ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.ViewScopedjavax.faces.bean.ViewScopeditemgetItem()