Java 在requestscoped/viewscoped managedbean中访问sessionscoped managedbean值
我试图从managedbean访问sessioncontroller(sessionscoped bean)中的对象。登录时会创建sessionobject。然后,当我尝试从requestscoped bean持久化时,我需要来自sessioncontroller的登录对象,但当我调试时,它总是空的 BeanJava 在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
@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。混合不同类型的注释不是一个好做法。。