【发布时间】:2017-03-27 23:11:48
【问题描述】:
我正在测试一个使用 httpsession 的简单登录,所以在我验证用户身份后,我将一个用户属性添加到 http 会话:
@ManagedBean
@SessionScoped
public class loginView {
....
public String connect() {
FacesContext context = FacesContext.getCurrentInstance();
if (authenticated) {
context.getExternalContext().getSessionMap().put("user", login);
return "/home/NewFile?faces-redirect=true";
} else {
context.addMessage(null, new FacesMessage("Unknown login, try again"));
login = "";
pwd = "";
return null;
}
}
}
当我从登录视图调用这个函数时,它会重定向到NewFile.xhtml,就像它应该做的那样。在上述 xhtml 中,我使用#{user} 显示"user" 属性。到目前为止一切正常,但是当我刷新页面 (NewFile.xhtml) 或当我重定向到另一个页面并尝试显示"user" 属性时我得到空值,这是预期的行为吗?刷新或重定向会创建另一个 httpsession 吗?还是只是删除我添加的属性?
【问题讨论】:
标签: jsf httpsession