Java 在requestscoped/viewscoped managedbean中访问sessionscoped managedbean值

Java 在requestscoped/viewscoped managedbean中访问sessionscoped managedbean值,java,jsf,managed-bean,Java,Jsf,Managed Bean,我试图从managedbean访问sessioncontroller(sessionscoped bean)中的对象。登录时会创建sessionobject。然后,当我尝试从requestscoped bean持久化时,我需要来自sessioncontroller的登录对象,但当我调试时,它总是空的 Bean @ManagedBean @ViewScoped // ??? @RequestScoped public class BoekingController { @Inject priva

我试图从managedbean访问sessioncontroller(sessionscoped bean)中的对象。登录时会创建sessionobject。然后,当我尝试从requestscoped bean持久化时,我需要来自sessioncontroller的登录对象,但当我调试时,它总是空的

Bean

@ManagedBean
@ViewScoped
// ??? @RequestScoped
public class BoekingController {

@Inject
private ZoekService zoekService;
@Inject
private BetaalwijzeService betaalwijzeService;
@EJB
private transient BoekingService boekingService;
@ManagedProperty("#{sessionController}")
private SessionController sessionController;

public void init() {
    if (betaalwijzeId > 0) {
        betaalwijze = betaalwijzeService.findToegestandBetaalwijze(betaalwijzeId);
    }

    reis = zoekService.findReis(reisId);

    if (aantalPersonen > 0) {
        instellenBoeking(aantalPersonen, betaalwijze, new Klant(1, "Test", "test@test.be", "test"), reis);
    }
}
正如您所看到的,我自己硬编码了对象,并且持久化工作正常,我只是无法从下面发布的sessionController中获取变量

会话控制器

@SessionScoped
@Named(value = "sessionController")
public class SessionController implements Serializable{
Klant klant;

public Klant getKlant() {
    return klant;
}
public void setKlant(Klant klant) {
    this.klant = klant;
}
在页面上,我可以通过使用:#{sessionController.klantNaam}

来访问sessionobject,正如链接的javadoc中所解释的那样,应该使用注释来注入带有
ManagedBean
注释的JSFbean


使用
Inject
注释注入CDIBean。

混合不同类型的注释不是一个好做法。。