« 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

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/15930468

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

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