Spring 일지 #21 (20210914) 화면 구현(마이페이지)
21. 마이페이지
-마이페이지 생성
*페이지 등록(MemberController.java)
// 127.0.0.1:8080/ROOT/member/mypage?menu=1
@RequestMapping(value = "/mypage", method = RequestMethod.GET)
public String mypageGET(Authentication authentication, Model model,@RequestParam(name = "menu", defaultValue = "0")int menu) {
if(menu == 0){ <- 마이페이지 접속 시 기본 화면을 1번으로 나타낸다.
return "redirect:/member/mypage?menu=1";
}
if (authentication != null) { // 로그인 되었다면
User user = (User) authentication.getPrincipal();
Optional<Member> obj = mRepository.findById(user.getUsername());
model.addAttribute("member", obj.get());
return "member_mypage";
} else { // 로그인 되어 있지 않다면
return "redirect:/member/login";
}
}
*페이지 구성(member_mypage.jsp)
*menu1, 2, 3을 이용해 정보수정, 암호변경, 회원탈퇴를 구현한다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div style="padding: 10px">
<a th:href="@{/member/mypage(menu=1)}">회원정보수정</a>
<a th:href="@{/member/mypage(menu=2)}">비밀번호변경</a>
<a th:href="@{/member/mypage(menu=3)}">회원탈퇴</a>
<hr />
<span th:text="${param.menu}"></span>
<div th:if="${#strings.toString(param.menu)=='1'}">
<h3>회원정보수정</h3>
<form th:action="@{/member/mypage(menu=1)}" method="post">
이름 <input type="text" name="username" th:value="${member.username}"/><br />
연락처 <input type="text" name="usertel" th:value="${member.usertel}"/><br />
<input type="submit" value="정보 수정" />
</form>
</div>
<div th:if="${#strings.toString(param.menu)=='2'}">
<h3>비밀번호변경</h3>
<form th:action="@{/member/mypage(menu=2)}" method="post">
현재 암호 <input type="password" name="oldpw" placeholder="현재 암호"/><br />
변경 암호 <input type="password" name="newpw" placeholder="변경 암호"/><br />
변경 암호 확인 <input type="password" name="newpw1" placeholder="변경 암호 확인"/><br />
<input type="submit" value="암호 수정" />
</form>
</div>
<div th:if="${#strings.toString(param.menu)=='3'}">
<h3>회원탈퇴</h3>
<form th:action="@{/member/mypage(menu=3)}" method="post">
현재 암호 <input type="password" name="oldpw" placeholder="현재 암호"/><br />
<input type="submit" value="회원 탈퇴" />
</form>
</div>
</div>
</body>
</html>
*화면 확인
**주소창에 기본 주소가 menu=1로 되어있다.