2段階のプロセス-
1.ログアウトページを作成します
2.ログアウトメソッドを使用してセッションBeanを作成します
ステップA:ログアウトページ
<div class="mytext">
<p>Hello #{userSession.username}, </p>
<p><h:outputText value="It doesn't seem you're logged in anyway..." rendered="#{!userSession.userLoggedIn}" /></p>
</div>
<h:form class="mytext" rendered="#{userSession.userLoggedIn}" >
<h:panelGrid columns="2" >
<h:outputLabel value="Do you want to logout?" for="logout" />
<p:commandButton value="Logout" id="logout" action="#{userSession.logout}" />
</h:panelGrid>
</h:form>
ステップB:セッションBeanバッキングコード(スニペット)
public String logout() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
session.invalidate();
return "/index?faces-redirect=true";
}
public boolean isUserLoggedIn() {
String user = this.getUsername();
boolean result = !((user == null)|| user.isEmpty());
return result;
}
/** Get the login username if it exists */
public String getUsername() {
String user = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
return user;
}