From 89a7d7125902fa60c0684b820aa2a68c72f3b15d Mon Sep 17 00:00:00 2001 From: s-ohasi <26-o-m-stella-tecnica@it-college.jp> Date: Tue, 20 Oct 2026 16:02:55 +0900 Subject: [PATCH 01/10] no message --- .../demo/controller/LoginController.java | 176 +++++++++--------- .../java/com/example/demo/form/LoginInfo.java | 24 +++ .../com/example/demo/form/LoginUserForm.java | 2 + .../com/example/demo/form/MessageForm.java | 14 ++ 4 files changed, 126 insertions(+), 90 deletions(-) create mode 100644 team1/src/main/java/com/example/demo/form/LoginInfo.java create mode 100644 team1/src/main/java/com/example/demo/form/MessageForm.java diff --git a/team1/src/main/java/com/example/demo/controller/LoginController.java b/team1/src/main/java/com/example/demo/controller/LoginController.java index a541e29..e337659 100644 --- a/team1/src/main/java/com/example/demo/controller/LoginController.java +++ b/team1/src/main/java/com/example/demo/controller/LoginController.java @@ -1,7 +1,5 @@ package com.example.demo.controller; -import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*; - import java.util.logging.Level; import java.util.logging.Logger; @@ -14,15 +12,10 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import com.example.rhizome.app.domain.model.LoginInfo; -import com.example.rhizome.app.domain.model.LoginUser; -import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; -import com.example.rhizome.app.presentation.controller.pageproperty.SessionKeyword; -import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; -import com.example.rhizome.app.presentation.form.LoginInfoForm; -import com.example.rhizome.app.presentation.form.LoginUserForm; -import com.example.rhizome.app.presentation.form.MessageForm; -import com.example.rhizome.app.presentation.form.UpdatePersonalUserForm; +import com.example.demo.form.LoginInfo; +import com.example.demo.form.LoginInfo.LoginInfoForm; +import com.example.demo.form.LoginUserForm; +import com.example.demo.form.MessageForm; @Controller public class LoginController { @@ -48,93 +41,96 @@ public class LoginController { } /** - * 画面から渡ってきたパラメータのチェックを行う - * - * @param loginInfoForm mailAddress, password を保持したインスタンス - * @param model ビューにデータを渡すためのコンテナ - * @return 遷移先の画面 - */ - @RequestMapping(value = DO_LOGIN, method = RequestMethod.POST) - public String doLogin(LoginInfoForm loginInfoForm, Model model) { + * 画面から渡ってきたパラメータのチェックを行う + * + * @param loginInfoForm mailAddress, password を保持したインスタンス + * @param model ビューにデータを渡すためのコンテナ + * @return 遷移先の画面 + */ + @RequestMapping(value = DO_LOGIN, method = RequestMethod.POST) + public String doLogin(LoginInfoForm loginInfoForm, Model model) { - // ログに出力する - final String MAIL_ADDRESS_PASSWORD_ERROR = "メールアドレス、パスワードの入力内容に誤りがあります"; - // 発生しうるErrorに対するメッセージ - final String LOGIN_ERROR = "IDまたはパスワードが間違っています"; + // ログに出力する + final String MAIL_ADDRESS_PASSWORD_ERROR = "メールアドレス、パスワードの入力内容に誤りがあります"; + // 発生しうるErrorに対するメッセージ + final String LOGIN_ERROR = "IDまたはパスワードが間違っています"; - try { - // mailAddress, password の入力に誤りがあるかチェック - if (!LoginUserForm.checkParameter(loginInfoForm)) { + try { + // mailAddress, password の入力に誤りがあるかチェック + if (!LoginUserForm.checkParameter(loginInfoForm)) { - // mail,passwordが仕様を満たしていない場合 - model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(MAIL_ADDRESS_PASSWORD_ERROR)); + // mail,passwordが仕様を満たしていない場合 + model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, + new MessageForm(MAIL_ADDRESS_PASSWORD_ERROR)); - // エラーだった場合に login.html に処理を戻す。mailAddress, password を login.htmlに表示するために - // ここで addAttribute する - model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); - // login.html に遷移する様に設定 - return TransitionTargetPageNameKeyword.LOGIN_HTML; - } - // Login者情報インスタンスを作成 - LoginInfo loginInfo = createLoginInfo(httpSession, loginInfoForm); + // エラーだった場合に login.html に処理を戻す。mailAddress, password を login.htmlに表示するために + // ここで addAttribute する + model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); + // login.html に遷移する様に設定 + return TransitionTargetPageNameKeyword.LOGIN_HTML; + } + // Login者情報インスタンスを作成 + LoginInfo loginInfo = createLoginInfo(httpSession, loginInfoForm); - // login 可能かチェック - if (!login.canLogin(loginInfo)) { - // ログイン不可の場合、エラーメッセージをセットして入力された値とともに login.html を再表示 - // 画面に表示するエラーメッセージをセット - model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(LOGIN_ERROR)); - // 画面に表示する mailAddress, password をセット - model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); - // login.html に遷移 - return TransitionTargetPageNameKeyword.LOGIN_HTML; - } - // ログイン(インスタンス作成) - LoginUser loginUser = login.doLogin(loginInfo); + // login 可能かチェック + if (!login.canLogin(loginInfo)) { + // ログイン不可の場合、エラーメッセージをセットして入力された値とともに login.html を再表示 + // 画面に表示するエラーメッセージをセット + model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(LOGIN_ERROR)); + // 画面に表示する mailAddress, password をセット + model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); + // login.html に遷移 + return TransitionTargetPageNameKeyword.LOGIN_HTML; + } + // ログイン(インスタンス作成) + LoginUser loginUser = login.doLogin(loginInfo); - // ログイン者の情報をセッション情報に格納 - // セッションに loginUser 情報を保持し続ける = ログイン中として扱う - httpSession.setAttribute(SessionKeyword.LOGIN_USER, LoginUserForm.convertFrom(loginUser)); + // ログイン者の情報をセッション情報に格納 + // セッションに loginUser 情報を保持し続ける = ログイン中として扱う + httpSession.setAttribute(SessionKeyword.LOGIN_USER, LoginUserForm.convertFrom(loginUser)); - // 管理者かチェック - if (!loginUser.isAdminUser()) { - // 管理者ではない場合直で自分の情報を更新するページに遷移する - // 編集対象のログイン者の情報を画面に渡す値にセット - model.addAttribute(PageReturnAttributeKeyword.UPDATE_PERSONAL_EMPLOYEE_USER_FORM, UpdatePersonalUserForm.convertFrom(loginUser)); - // 個人の情報更新ページに遷移 - return TransitionTargetPageNameKeyword.UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML; - } - // メニュー画面に遷移 - return TransitionTargetPageNameKeyword.MENU_HTML; + // 管理者かチェック + if (!loginUser.isAdminUser()) { + // 管理者ではない場合直で自分の情報を更新するページに遷移する + // 編集対象のログイン者の情報を画面に渡す値にセット + model.addAttribute(PageReturnAttributeKeyword.UPDATE_PERSONAL_EMPLOYEE_USER_FORM, + UpdatePersonalUserForm.convertFrom(loginUser)); + // 個人の情報更新ページに遷移 + return TransitionTargetPageNameKeyword.UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML; + } + // メニュー画面に遷移 + return TransitionTargetPageNameKeyword.MENU_HTML; - } catch (Exception e) { - // ログイン情報の破棄 - httpSession.invalidate(); - e.printStackTrace(); - // エラーログ出力 - LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); - // エラー画面に遷移 - return TransitionTargetPageNameKeyword.ERROR_HTML; - } - /** - * ログイン者情報のインスタンスを作成 - * - * @param httpSession セッション情報 - * @param loginInfoForm mailAddress, password を保持したインスタンス - */ - private static LoginInfo createLoginInfo(HttpSession httpSession, LoginInfoForm loginInfoForm) { - // セッションからログイン者情報を取得 - LoginUserForm loginUserForm = (LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER); + } catch (Exception e) { + // ログイン情報の破棄 + httpSession.invalidate(); + e.printStackTrace(); + // エラーログ出力 + LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); + // エラー画面に遷移 + return TransitionTargetPageNameKeyword.ERROR_HTML; + } + } - // セッションにログイン者情報があるか - if (loginUserForm != null) { - // セッションにログイン者情報がある場合 - return new LoginInfo(loginUserForm.getMailAddress(), loginUserForm.getPassword()); - } + /** + * ログイン者情報のインスタンスを作成 + * + * @param httpSession セッション情報 + * @param loginInfoForm mailAddress, password を保持したインスタンス + */ + private static LoginInfo createLoginInfo(HttpSession httpSession, LoginInfoForm loginInfoForm) { + // セッションからログイン者情報を取得 + LoginUserForm loginUserForm = (LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER); - // セッションにない場合は画面からの input 値 を取得 - return new LoginInfo( - loginInfoForm.getMailAddress(), - loginInfoForm.getPassword() - ); -} + // セッションにログイン者情報があるか + if (loginUserForm != null) { + // セッションにログイン者情報がある場合 + return new LoginInfo(loginUserForm.getMailAddress(), loginUserForm.getPassword()); + } + + // セッションにない場合は画面からの input 値 を取得 + return new LoginInfo( + loginInfoForm.getMailAddress(), + loginInfoForm.getPassword()); + } } diff --git a/team1/src/main/java/com/example/demo/form/LoginInfo.java b/team1/src/main/java/com/example/demo/form/LoginInfo.java new file mode 100644 index 0000000..2e6dc0d --- /dev/null +++ b/team1/src/main/java/com/example/demo/form/LoginInfo.java @@ -0,0 +1,24 @@ +package com.example.demo.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +public class LoginInfo { + //ログインをする人 + @Data + @AllArgsConstructor + @NoArgsConstructor + public class LoginInfoForm { + /** + * メールアドレス + */ + private String mailAddress; + /** + * パスワード + */ + private String password; + + } + +} diff --git a/team1/src/main/java/com/example/demo/form/LoginUserForm.java b/team1/src/main/java/com/example/demo/form/LoginUserForm.java index 22b59d1..1e90646 100644 --- a/team1/src/main/java/com/example/demo/form/LoginUserForm.java +++ b/team1/src/main/java/com/example/demo/form/LoginUserForm.java @@ -1,5 +1,7 @@ package com.example.demo.form; +import com.example.demo.form.LoginInfo.LoginInfoForm; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/team1/src/main/java/com/example/demo/form/MessageForm.java b/team1/src/main/java/com/example/demo/form/MessageForm.java new file mode 100644 index 0000000..d124177 --- /dev/null +++ b/team1/src/main/java/com/example/demo/form/MessageForm.java @@ -0,0 +1,14 @@ +package com.example.demo.form; + +//画面にエラー表示する +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MessageForm { + private String message; +} + From b2dc911b679c6349a761f11fd2f871c380b6ed1c Mon Sep 17 00:00:00 2001 From: s-ohasi <26-o-m-stella-tecnica@it-college.jp> Date: Wed, 21 Oct 2026 09:14:46 +0900 Subject: [PATCH 02/10] login.html --- team1/src/main/resources/templates/login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/team1/src/main/resources/templates/login.html b/team1/src/main/resources/templates/login.html index ee543e6..313e0be 100644 --- a/team1/src/main/resources/templates/login.html +++ b/team1/src/main/resources/templates/login.html @@ -35,7 +35,7 @@