Spring

Spring 일지 #21 (20210914) 화면 구현(마이페이지)

uni5948 2021. 9. 24. 12:25

21. 마이페이지

-마이페이지 생성

 *페이지 등록(MemberController.java)

// 127.0.0.1:8080/ROOT/member/mypage?menu=1

    @RequestMapping(value = "/mypage"method = RequestMethod.GET)

    public String mypageGET(Authentication authenticationModel model,@RequestParam(name = "menu"defaultValue = "0")int menu) {

        if(menu == 0){ <- 마이페이지 접속 시 기본 화면을 1번으로 나타낸다.

            return "redirect:/member/mypage?menu=1";

        }

        if (authentication != null) { // 로그인 되었다면

            User user = (Userauthentication.getPrincipal();

 

            Optional<Memberobj = 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로 되어있다.

마이페이 확인