Jsf 从@RequestScope bean获取注入点列表

Jsf 从@RequestScope bean获取注入点列表,jsf,cdi,Jsf,Cdi,我有@RequestScoped(RequestBean)cdibean,它被注入到两个不同的@ViewScopeJSF@ManagedBean(FirstViewBean和SecondViewBean)中。我想要获得RequestBean的注入点列表。我怎么做?清单如下 RequestBean: @RequestScoped public class RequestBean { public void logPoints() { System.out.printl

我有
@RequestScoped
(RequestBean)cdibean,它被注入到两个不同的
@ViewScope
JSF
@ManagedBean
FirstViewBean
SecondViewBean
)中。我想要获得RequestBean的注入点列表。我怎么做?清单如下

RequestBean:

@RequestScoped
public class RequestBean {

    public void logPoints() {
          System.out.println(getInjectionPoints());
    }

    private List<InjectionPoint> getInjectionPoints() {
          List<InjectionPoint> result = null;
          // ...
          return result;
    }
}
@ViewScoped
@ManagedBean
public class FirstViewBean implements Serializable {

    private static final long serialVersionUID = 1867903409268465766L;

    @Inject
    private RequestBean rb;

    public void action() {
          rb.logPoints();
    }
}
@ViewScoped
@ManagedBean
public class SecondViewBean implements Serializable {

    private static final long serialVersionUID = 1867903409268465766L;

    @Inject
    private RequestBean rb;

    public void action() {
        rb.logPoints();
    }
}
SecondViewBean:

@RequestScoped
public class RequestBean {

    public void logPoints() {
          System.out.println(getInjectionPoints());
    }

    private List<InjectionPoint> getInjectionPoints() {
          List<InjectionPoint> result = null;
          // ...
          return result;
    }
}
@ViewScoped
@ManagedBean
public class FirstViewBean implements Serializable {

    private static final long serialVersionUID = 1867903409268465766L;

    @Inject
    private RequestBean rb;

    public void action() {
          rb.logPoints();
    }
}
@ViewScoped
@ManagedBean
public class SecondViewBean implements Serializable {

    private static final long serialVersionUID = 1867903409268465766L;

    @Inject
    private RequestBean rb;

    public void action() {
        rb.logPoints();
    }
}

即使这段代码有效,它也不会总是说列表大小总是1,因为您将它注入到查看范围bean中了吗?除此之外,InjectionPoint并非仅可用于不可代理的pesudo作用域(
@Dependent
@Singleton
)。“只有从属对象才能获取有关其所属注入点的信息。”。也许会说你需要注入点做什么。@geinmachie这些词
只有依赖对象才能获得关于它们所属注入点的信息
专门用于解释获得
注入点的方法。我错了吗?我认为,对于2
@ViewScope
bean,它可以返回2
InjectPoint
(例如,当一个
@ViewScope
action
调用,另一个从
actionListener
调用时)。在我的例子中,我有多个
@ViewScope
bean(但HTTP请求有一个实例),当调用
@RequestScope
bean时,我希望只向实例
@ViewScope
bean发送回调