维护页面重定向之间的会话范围?

时间:2012-08-21 20:54:21

标签: java jsf java-ee servlets

如何在重定向之间维护SessionScoped个对象? 我有一个访问Stateless bean的主页面。

我还有一个按钮,它正在对特定路径进行重定向(FacesContext.getCurrentInstance().getExternalContext().redirect("/to/my/sevlet");),并通过调用webservlet。 webservlet本身会创建一些基于契约的响应,但这一点无关紧要。

问题是:当我被重定向到servlet时,我丢失了在无状态bean初始访问期间设置的会话范围bean属性。

如何在页面切换/重定向之间维护会话范围?

@Stateless
class myStateless {
    @Inject
    MySessionBean sessionBean;

    private doSomething() {
        sessionBean.setSessionProperty(true);
    }
}


@SessionScoped
class MySessionBean {

    Boolean sessionProperty = false;
}


@WebServlet
class MyWebServlet {
    doGet(..) {
        out.println("session property status is" + String.valueOf(sessionBean.isSessionProperty()); //always false
    }
}

1 个答案:

答案 0 :(得分:0)

我发现设置很好。我刚刚对无会话作用域的var。

进行了引用调用