« Teedaのカスタムバリデータ | Main | 継承関係のあるPageクラス »

2007.07.29

Teedaでログアウト

 Teedaで、ログインしたらやはりログアウトの処理も必要ってことで。

 例えば、ログインしているという情報をLoginDtoというDtoオブジェクトに格納し、このオブジェクトのライフサイクルをSessionにしていたとします。となると、ログアウトのページではこのオブジェクトをセッションから破棄すればOKのはず・・・ってことで、Re: [Seasar]Session スコープのコンポーネントの破棄を参考に、以下のような感じのLogoutPage.javaを作成してみました。なお、念のためLoginDtoに格納しているデータも破棄できるよう、このDtoにはlogout()というメソッドを実装しています(このメソッドを呼び出すとインスタンス変数の内容をクリアする)。

public class LogoutPage {
 private LoginDto loginDto;
 @RemoveSession(name={ "loginDto" })
 public Class prerender() {
  loginDto.logout();
  return null;
 }
 public void setLoginDto(LoginDto loginDto) {
  this.loginDto = loginDto;
 }
}

 なお、SMART deploy環境でライフサイクルのScopeをSessionにした場合、セッションにバインドされるときのキーはやはりクラス名の1文字目を小文字にした文字列となるようです。なので、今回の場合はLoginDtoをクリアすればいいので、@RemoveSessionアノテーションのパラメータはloginDtoってことになります。

 ログアウトのリンクでlogout.htmlに遷移させたり、ログアウトボタンでdoLogoutでsubmitさせるなどを行えば、ログアウト処理を実行することが出来るはずです。

|

« Teedaのカスタムバリデータ | Main | 継承関係のあるPageクラス »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Teedaでログアウト:

« Teedaのカスタムバリデータ | Main | 継承関係のあるPageクラス »