From 09f451e7f61c5d326ca6fc0a860814ecbb120de0 Mon Sep 17 00:00:00 2001
From: s-ohasi <26-o-m-stella-tecnica@it-college.jp>
Date: Thu, 22 Oct 2026 12:39:38 +0900
Subject: [PATCH] no message
---
team1/pom.xml | 11 +-
.../demo/controller/LendingController.java | 72 +++++-----
.../demo/controller/LoginController.java | 133 +++++-------------
.../demo/controller/LogoutController.java | 64 +++++++++
.../demo/controller/SelectBookController.java | 3 +-
.../java/com/example/demo/form/LoginInfo.java | 24 ----
.../com/example/demo/form/LoginInfoForm.java | 22 +++
.../com/example/demo/form/LoginUserForm.java | 27 ++--
.../com/example/demo/model/LoginInfo.java | 13 ++
.../demo/repository/EmployeeRepository.java | 4 +-
.../ApprovalBorrowBooksImpl.java | 13 +-
.../com/example/demo/service/impl/Login.java | 11 ++
team1/src/main/resources/templates/login.html | 4 +-
13 files changed, 205 insertions(+), 196 deletions(-)
create mode 100644 team1/src/main/java/com/example/demo/controller/LogoutController.java
delete mode 100644 team1/src/main/java/com/example/demo/form/LoginInfo.java
create mode 100644 team1/src/main/java/com/example/demo/form/LoginInfoForm.java
create mode 100644 team1/src/main/java/com/example/demo/model/LoginInfo.java
rename team1/src/main/java/com/example/demo/service/{Impl => impl}/ApprovalBorrowBooksImpl.java (81%)
create mode 100644 team1/src/main/java/com/example/demo/service/impl/Login.java
diff --git a/team1/pom.xml b/team1/pom.xml
index 8b03b4f..d38cddb 100644
--- a/team1/pom.xml
+++ b/team1/pom.xml
@@ -74,16 +74,7 @@
spring-boot-starter-webmvc-test
test
-
- com.example
- HelloSpring
- 0.0.1-SNAPSHOT
-
-
- com.example.rhizome
- EM-Spring
- 0.0.1-SNAPSHOT
-
+
diff --git a/team1/src/main/java/com/example/demo/controller/LendingController.java b/team1/src/main/java/com/example/demo/controller/LendingController.java
index ab7ea82..8703362 100644
--- a/team1/src/main/java/com/example/demo/controller/LendingController.java
+++ b/team1/src/main/java/com/example/demo/controller/LendingController.java
@@ -1,4 +1,4 @@
-package com.example.demo.controller;
+/*package com.example.demo.controller;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -18,7 +18,7 @@ import main.java.com.example.rhizome.app.presentation.controller.pageproperty.Tr
/**
* 書籍貸出申請に関する処理を制御するコントローラ
*/
-@Controller
+/*@Controller
public class LendingController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(LendingController.class.getName());
@@ -34,35 +34,35 @@ public class LendingController {
}
//画面を開くための初期化(!formクラス名要確認!)
- @ModelAttribute
- public LendingForm lendingForm() {
- return new LendingForm();
- }
+// @ModelAttribute
+// public LendingForm lendingForm() {
+// return new LendingForm();
+// }
- @PermissionCheck
- @SessionCheck
- @RequestMapping(value = "反応するURLを記載", method = RequestMethod.POST)
- public String confirmLending(@ModelAttribute("lendingForm") LendingForm lendingForm, Model model) {
- try {
+// @PermissionCheck
+// @SessionCheck
+// @RequestMapping(value = "反応するURLを記載", method = RequestMethod.POST)
+// public String confirmLending(@ModelAttribute("lendingForm") LendingForm lendingForm, Model model) {
+// try {
// HTML側の th:object="${lendingForm}" に渡すデータをセット
- model.addAllAttribute("lendingForm", lendingForm);
+// model.addAllAttribute("lendingForm", lendingForm);
// 貸出申請確認画面のHTML名を返す
- return "applicationConform";
- } catch (Exception e) {
+// return "applicationConform";
+// } catch (Exception e) {
//ログイン情報の破棄
- httpSession.invalidate();
+// httpSession.invalidate();
- e.printStackTrace();
+// e.printStackTrace();
// エラーログ出力
- LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+// LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面遷移
- return TransitionTargetPageNameKeyword.ERROR_HTML;
+// return TransitionTargetPageNameKeyword.ERROR_HTML;
- }
-
- }
+// }
+
+// }
/**
* 書籍貸出申請 実行処理
@@ -71,24 +71,24 @@ public class LendingController {
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
- @PermissionCheck
- @SessionCheck
- @RequestMapping(value = "反応するURLを記載", method = RequestMethod.POST)
- public String executeLending(@ModelAttribute("lendingForm") LendingForm lendingForm, Model model) {
- final String LENDING_COMPLETE = "書籍申請完了しました";
- try
+ //@PermissionCheck
+ //@SessionCheck
+ //@RequestMapping(value = "反応するURLを記載", method = RequestMethod.POST)
+ //public String executeLending(@ModelAttribute("lendingForm") LendingForm lendingForm, Model model) {
+ //final String LENDING_COMPLETE = "書籍申請完了しました";
+ //try
- {
+ //{
- } catch (Exception e) {
+ //} catch (Exception e) {
// ログイン情報の破棄
- httpSession.invalidate();
- e.printStackTrace();
+ //httpSession.invalidate();
+ //e.printStackTrace();
// エラーログ出力
- LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+ //LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面遷移
- return TransitionTargetPageNameKeyword.ERROR_HTML;
- }
- }
-}
+ //return TransitionTargetPageNameKeyword.ERROR_HTML;
+ //}
+ //}
+//}
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 e337659..23fc734 100644
--- a/team1/src/main/java/com/example/demo/controller/LoginController.java
+++ b/team1/src/main/java/com/example/demo/controller/LoginController.java
@@ -1,6 +1,5 @@
package com.example.demo.controller;
-import java.util.logging.Level;
import java.util.logging.Logger;
import jakarta.servlet.http.HttpSession;
@@ -9,128 +8,70 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.PostMapping;
-import com.example.demo.form.LoginInfo;
-import com.example.demo.form.LoginInfo.LoginInfoForm;
+import com.example.demo.form.LoginInfoForm;
import com.example.demo.form.LoginUserForm;
import com.example.demo.form.MessageForm;
+import com.example.demo.service.impl.Login;
@Controller
public class LoginController {
- //
- private final static Logger LOGGER = Logger.getLogger(LoginController.class.getName());
+ // // ログ出力用インスタンス
+ private static final Logger LOGGER = Logger.getLogger(LoginController.class.getName());
- //
- private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
-
- HttpSession httpSession;
- Login login;
+ // ログイン処理を行う
+ private final Login login;
+ // コンストラクタで部品を注入する(Autowired)
@Autowired
- public LoginController(HttpSession httpSession, Login login) {
- this.httpSession = httpSession;
+ public LoginController(Login login) {
this.login = login;
}
+ // 画面で使うフォームの初期化
@ModelAttribute
public LoginUserForm loginUserForm() {
return new LoginUserForm();
}
- /**
- * 画面から渡ってきたパラメータのチェックを行う
- *
- * @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またはパスワードが間違っています";
+ // ログインボタンが押されたときの処理
+ @PostMapping("/doLogin")
+ public String doLogin(LoginInfoForm loginInfoForm, HttpSession session, Model model) {
try {
- // mailAddress, password の入力に誤りがあるかチェック
+ // 入力チェック(メールアドレスやパスワードの形が正しいか)
if (!LoginUserForm.checkParameter(loginInfoForm)) {
-
- // 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;
+ // エラーメッセージと、入力されたデータを画面に返す
+ model.addAttribute("messageError", new MessageForm("メールアドレス、パスワードの入力内容に誤りがあります"));
+ model.addAttribute("loginInfoForm", loginInfoForm);
+ return "login"; // 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;
+ // 認証チェック(IDとパスワードが一致するか)
+ if (!login.canLogin(loginInfoForm)) {
+ // 間違っている場合のメッセージを画面に返す
+ model.addAttribute("messageError", new MessageForm("IDまたはパスワードが間違っています"));
+ model.addAttribute("loginInfoForm", loginInfoForm);
+ return "login"; // login.html を表示
}
- // ログイン(インスタンス作成)
- LoginUser loginUser = login.doLogin(loginInfo);
- // ログイン者の情報をセッション情報に格納
- // セッションに loginUser 情報を保持し続ける = ログイン中として扱う
- httpSession.setAttribute(SessionKeyword.LOGIN_USER, LoginUserForm.convertFrom(loginUser));
+ // ログイン処理の実行
+ LoginUser loginUser = login.doLogin(loginInfoForm);
- // 管理者かチェック
- 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;
+ // セッション(サーバーの秘密のメモ帳)にユーザー情報を保存
+ //「ログイン中」の状態
+ session.setAttribute("loginUser", LoginUserForm.convertFrom(loginUser));
+
+ // 成功したらメニュー画面へ進む
+ return "menu"; // menu.html を表示
} catch (Exception e) {
- // ログイン情報の破棄
- httpSession.invalidate();
- e.printStackTrace();
- // エラーログ出力
- LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
- // エラー画面に遷移
- return TransitionTargetPageNameKeyword.ERROR_HTML;
+ // 予期せぬエラーが起きたら、セッションを消してエラー画面へ
+ session.invalidate();
+ LOGGER.error("エラーが発生しました!", e);
+ return "error"; // error.html を表示
}
}
-
- /**
- * ログイン者情報のインスタンスを作成
- *
- * @param httpSession セッション情報
- * @param loginInfoForm mailAddress, password を保持したインスタンス
- */
- private static LoginInfo createLoginInfo(HttpSession httpSession, LoginInfoForm loginInfoForm) {
- // セッションからログイン者情報を取得
- LoginUserForm loginUserForm = (LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER);
-
- // セッションにログイン者情報があるか
- if (loginUserForm != null) {
- // セッションにログイン者情報がある場合
- return new LoginInfo(loginUserForm.getMailAddress(), loginUserForm.getPassword());
- }
-
- // セッションにない場合は画面からの input 値 を取得
- return new LoginInfo(
- loginInfoForm.getMailAddress(),
- loginInfoForm.getPassword());
- }
-}
+}
\ No newline at end of file
diff --git a/team1/src/main/java/com/example/demo/controller/LogoutController.java b/team1/src/main/java/com/example/demo/controller/LogoutController.java
new file mode 100644
index 0000000..5484dc2
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/controller/LogoutController.java
@@ -0,0 +1,64 @@
+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;
+
+import jakarta.servlet.http.HttpSession;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+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.aop.aspect.PermissionCheck;
+import com.example.rhizome.aop.aspect.SessionCheck;
+import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
+import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
+import com.example.rhizome.app.presentation.form.LoginUserForm;
+
+@Controller
+public class LogoutController {
+ // ログ出力用インスタンス
+ private final static Logger LOGGER = Logger.getLogger(LogoutController.class.getName());
+ // エラーメッセージ用の定数フィールド
+ private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
+
+ HttpSession httpSession;
+
+ @Autowired
+ public LogoutController(HttpSession httpSession) {
+ this.httpSession = httpSession;
+ }
+
+ @ModelAttribute
+ public LoginUserForm loginUserForm() {
+ return new LoginUserForm();
+ }
+
+ @PermissionCheck
+ @SessionCheck
+ @RequestMapping(value = LOGOUT, method = RequestMethod.POST)
+ public String doLogout(Model model) {
+ try {
+ // セッション情報の破棄
+ httpSession.invalidate();
+
+ // ログイン画面に遷移するための情報を設定
+ model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginUserForm());
+ // login.html に遷移
+ return TransitionTargetPageNameKeyword.LOGIN_HTML;
+
+ } catch (Exception e) {
+
+ // エラーログ出力
+ LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+ // エラーページに遷移
+ return TransitionTargetPageNameKeyword.ERROR_HTML;
+ }
+
+ }
+}
diff --git a/team1/src/main/java/com/example/demo/controller/SelectBookController.java b/team1/src/main/java/com/example/demo/controller/SelectBookController.java
index 4fa733c..d974f0b 100644
--- a/team1/src/main/java/com/example/demo/controller/SelectBookController.java
+++ b/team1/src/main/java/com/example/demo/controller/SelectBookController.java
@@ -1,4 +1,4 @@
-package com.example.demo.controller;
+/*package com.example.demo.controller;
import java.util.List;
@@ -75,3 +75,4 @@ public class SelectBookController {
// }
}
+*/
\ No newline at end of file
diff --git a/team1/src/main/java/com/example/demo/form/LoginInfo.java b/team1/src/main/java/com/example/demo/form/LoginInfo.java
deleted file mode 100644
index 2e6dc0d..0000000
--- a/team1/src/main/java/com/example/demo/form/LoginInfo.java
+++ /dev/null
@@ -1,24 +0,0 @@
-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/LoginInfoForm.java b/team1/src/main/java/com/example/demo/form/LoginInfoForm.java
new file mode 100644
index 0000000..ec02f33
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/form/LoginInfoForm.java
@@ -0,0 +1,22 @@
+package com.example.demo.form;
+
+//ログイン情報
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@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 49feaa9..280677a 100644
--- a/team1/src/main/java/com/example/demo/form/LoginUserForm.java
+++ b/team1/src/main/java/com/example/demo/form/LoginUserForm.java
@@ -1,6 +1,6 @@
package com.example.demo.form;
-import com.example.demo.form.LoginInfo.LoginInfoForm;
+import com.example.rhizome.app.domain.model.LoginUser;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -44,41 +44,30 @@ public class LoginUserForm {
* @param loginUser business 層の LoginUser インスタンス
* @return クラスから画面用(presentation 層)の LoginUserForm
*/
- public static LoginUserForm convertFrom(LoginUserForm loginUser) {
+ public static LoginUserForm convertFrom(LoginUser loginUser) {
return new LoginUserForm(
loginUser.getIdEmployee(),
loginUser.getNmEmployee(),
loginUser.getKnEmployee(),
loginUser.getMailAddress(),
loginUser.getPassword(),
- loginUser.getFlgAdmin()
+ loginUser.getGetFlgadmin()
);
}
- /**
- * 画面用(presentation 層)の LoginUserForm クラスから business 層の LoginUser クラスに
- * 変換します。
- *
- * @param loginUserForm 画面用(presentation 層)の LoginUserForm インスタンス
- * @return business 層の LoginUser インスタンス
- */
- public static LoginUserForm convertTo(LoginUserForm loginUserForm) {
+
+ public static LoginUserForm convertTo(LoginUser loginUserForm) {
return new LoginUserForm(
loginUserForm.getIdEmployee(),
loginUserForm.getNmEmployee(),
loginUserForm.getKnEmployee(),
loginUserForm.getMailAddress(),
loginUserForm.getPassword(),
- loginUserForm.getFlgAdmin()
+ loginUserForm.getGetFlgadmin()
);
}
- /**
- * 画面から渡ってきた必須の値が仕様を満たしているか確認
- *
- * @param loginInfoForm 画面から渡ってきた mailAddress, password を格納しているインスタンス
- * @return true:仕様を満たしている , false:仕様を満たしていない
- */
+
public static boolean checkParameter(LoginInfoForm loginInfoForm) {
if (null == loginInfoForm.getMailAddress()) {
return false;
@@ -102,6 +91,6 @@ public class LoginUserForm {
* @return true:管理者権限を持っている , false:管理者権限を持っていない
*/
public boolean isAdminUser() {
- return getFlgAdmin() == 1;
+ return getFlgadmin() == 1;
}
}
diff --git a/team1/src/main/java/com/example/demo/model/LoginInfo.java b/team1/src/main/java/com/example/demo/model/LoginInfo.java
new file mode 100644
index 0000000..21c3b8d
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/model/LoginInfo.java
@@ -0,0 +1,13 @@
+package com.example.demo.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+//ログインを試みる
+@Getter
+@AllArgsConstructor
+public class LoginInfo {
+ private String maillAddress;
+ private String password;
+
+}
diff --git a/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java b/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java
index b273e3b..9761b26 100644
--- a/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java
+++ b/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java
@@ -1,7 +1,5 @@
package com.example.demo.repository;
-import java.util.Optional;
-
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@@ -9,6 +7,6 @@ import com.example.demo.entity.EmployeeEntity;
@Repository
public interface EmployeeRepository extends JpaRepository {
- Optional findByMailAddressAndPassword(String mailAddress, String password);
+
}
\ No newline at end of file
diff --git a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java b/team1/src/main/java/com/example/demo/service/impl/ApprovalBorrowBooksImpl.java
similarity index 81%
rename from team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java
rename to team1/src/main/java/com/example/demo/service/impl/ApprovalBorrowBooksImpl.java
index 65a96fe..b201c3d 100644
--- a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java
+++ b/team1/src/main/java/com/example/demo/service/impl/ApprovalBorrowBooksImpl.java
@@ -1,4 +1,4 @@
-package com.example.demo.service.Impl;
+/*package com.example.demo.service.Impl;
import java.util.List;
@@ -23,9 +23,12 @@ public class ApprovalBorrowBooksImpl implements ApprovalBorrowBooks {
/* 申請情報から全件取得
* @return 取得した情報すべて
*/
- public List??> selectAll() {
- return ???Entity.create???List(???Repository.findAll());
- }
+ //public List??> selectAll() {
+ //return ???Entity.create???List(???Repository.findAll());
+ //}
-}
\ No newline at end of file
+//}
+//package com;
+
+
diff --git a/team1/src/main/java/com/example/demo/service/impl/Login.java b/team1/src/main/java/com/example/demo/service/impl/Login.java
new file mode 100644
index 0000000..bd6c67b
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/service/impl/Login.java
@@ -0,0 +1,11 @@
+package com.example.demo.service.impl;
+
+import com.example.demo.form.LoginInfoForm;
+import com.example.rhizome.app.domain.model.LoginUser;
+
+public interface Login {
+ LoginUser doLogin(LoginInfoForm loginInfo);
+
+ boolean canLogin(LoginInfoForm loginInfo);
+
+}
diff --git a/team1/src/main/resources/templates/login.html b/team1/src/main/resources/templates/login.html
index 313e0be..2843a36 100644
--- a/team1/src/main/resources/templates/login.html
+++ b/team1/src/main/resources/templates/login.html
@@ -18,8 +18,8 @@
method="post"
th:object="${loginInfoForm}">
-