在requestscoped / viewscoped managedbean中访问sessioncoped managedbean值

时间:2013-11-16 20:14:43

标签: java jsf managed-bean

我正在尝试从managedbean访问sessioncontroller(sessionscoped bean)中的对象。当你登录时会创建sessionobject。然后当我尝试从requestscoped bean持久化并且我需要来自sessioncontroller的login-object但是当我调试它时总是为null。

@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中获取变量。

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;
}

在页面上,我可以使用以下方式访问sessionobject:#{sessionController.klantNaam}

1 个答案:

答案 0 :(得分:0)

注释ManagedProperty,如链接的javadoc中所述,应该用于注入一个用ManagedBean注释的JSF bean。

使用Inject注释注入CDI bean。