Teedaでログイン管理
ん〜〜。作ってみて、formをsubmitしてみたものの、doLoginメソッドが起動していない模様…。
なぜだろう。以下にテンプレートHTMLと、Pageクラス。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension" xml:lang="ja" lang="ja"> <head><title>login test</title></head> <body> <div id="isLoggedin"> <p>ようこそ <span id="userId">ユーザ名</span> さん。</p> <p><span id="userId">ユーザ名</span>さんではない場合は、 <a href="?doLogout">ログアウト</a>してください。</p> </div> <div id="isNotLoggedin"> <form class="loginForm" method="POST"> <fieldset> ユーザID<input id="userId" type="text"/><br/> パスワード<input id="password" type="password"/><br/> <input id="doLogin" type="submit" value="login"/> </fieldset> </form> <p><span id="loginMessage">ログイン成否メッセージ</span></p> <p><a href="../register/index.html">新規登録</a></p> </div> </body> </html>
import javax.servlet.http.HttpSession; public class TestPage { private String userId; private String password; private String loginMessage; private boolean loggedin; private HttpSession session; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getLoginMessage() { return loginMessage; } public boolean isLoggedin() { return loggedin; } public void setSession(HttpSession session) { this.session = session; } public String doLogin() { if(userId.equals("cepoc") && password.equals("pass")) { session.setAttribute("loggedin", true); loginMessage = "ログイン成功"; } else { session.setAttribute("loggedin", false); loginMessage = "ログイン失敗"; } return null; } public String doLogout() { session.setAttribute("loggedin", false); return null; } public String initialize() { return null; } public String prerender() { if(session.getAttribute("loggedin") == null) { loggedin = false; } else { loggedin = (Boolean) session.getAttribute("login"); } return null; } }
あと、HttpSession を直で使わずに、キレイに行く術があったようななかったような。
あるんだよな、こういうときは。明日調べよう。
おやすみなさーい。