Hir*_*mit 2 session jsf scope invalidation
目前,我正在为在线购物车创建一个 Web 应用程序,我需要在每个 jsf 页面上维护会话。
我的问题是:
如何在托管 bean 中创建和销毁会话
如何访问存储在会话变量中的值?像这样?
FacesContext.getCurrentInstance().getExternalContext().getSessionMap.put("key",object);
Run Code Online (Sandbox Code Playgroud)如何在 jsf 中销毁会话
我还需要使用销毁会话,session.invalidate()
但我失败了!!
如何在托管 bean 中创建和销毁会话
您不需要自己创建它。servletcontainer 将根据需要自动为您执行此操作。换句话说,每当您(或 JSF)需要在会话范围内设置一个对象时,servletcontainer 将自动创建会话。在 JSF Web 应用程序中,当您
@SessionScoped
或@ViewScoped
托管 bean。ExternalContext#getSession()
,true
第一次通过。ExternalContext#getSessionMap()
第一次在会话映射中存储对象。<h:form>
当状态保存方法设置为“服务器”时,第一次返回带有 a 的页面。您可以通过ExternalContext#invalidateSession()
. 例如
public String logout() {
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return "login?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)
记住之后发送重定向,因为会话对象在当前请求的响应中仍然可用,但在下一个请求中不再可用。
如何访问存储在会话变量中的值?
只需将其设为@SessionScoped
托管 bean的属性即可。或者,您也可以手动操作ExternalContext#getSessionMap()
,是的。
如何在 jsf 中销毁会话
这已经在第一个问题中得到了回答。
归档时间: |
|
查看次数: |
9035 次 |
最近记录: |