StudentManagedBean という名前で Bean を管理しました。その Bean では、post コンストラクトを使用して studentsList を初期化しました。別のマネージド Bean テスト Bean では、FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); を使用していました。学生を表示していたページ students.xhtml にリダイレクトします。
私の質問は、FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); を使用したときです。Student.xtml ページにリダイレクトされ、init メソッド (post コンストラクト) が 2 回呼び出されていました。上記の行にコメントすると、init メソッド (post 構造) が 1 回だけ呼び出されるようになりました。
この無効なセッションが正確に何をするのか教えてください。
@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";
}