【发布时间】:2012-08-21 20:54:20
【问题描述】:
如何在重定向之间维护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
}
}
【问题讨论】:
-
Servlet 如何获得对该会话范围 bean 的引用? Servlet 是否在同一个应用程序中?
标签: java jsf jakarta-ee servlets