我已按名称 studentManagedBean 管理 bean。在那个 bean 中,我使用了 post 构造来初始化 studentsList。在另一个托管 bean testbean 中,我使用的是 FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); 并重定向到我用来显示学生的页面students.xhtml。
我的问题是当我使用 FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); 并重定向到 student.xml 页面,init 方法(post 构造)用于调用两次。当我评论上述行时,init 方法(post 构造)现在只调用一次。
谁能告诉我这个无效会话到底会做什么。
@ManagedBean(name = "studentManagedBean" )
@SessionScoped
public class StudentManagedBean implements Serializable {
private List<SBean> stud;
@PostConstruct
private void init(){
this.stud=dao.getAllStudInfo();
}
@ManagedBean(name = "testBean" )
@SessionScoped
public class TestBean implements Serializable {
public String navigate(String name){
if(name.equals("Add student")){
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return "student";
}