[ JSP / Java ] 마이페이지 구현

2024. 3. 20. 22:44· FULL-STACK/└ JSP (Java Server Page)

환경 : DBeaver, Sprint Tool Suite4

 

 

- MemberController.java

@Controller
@RequestMapping("/member")
public class MemberController {
	
	@Autowired
	public MemberDao memberDao;
	
	//회원가입
	//실제 로그인
	//실제 로그아웃

	
	//마이페이지
	/* - (중요) 내 아이디는 HttpSession에 있다 
	 * - 그리고 화면에 정보를 표시해야 한다*/
	@RequestMapping("/mypage")
	public String mypage(HttpSession session, Model model) {
		//1. 세션에 저장된 아이디를 꺼낸다
		String loginId = (String) session.getAttribute("loginId");	//다운캐스팅(원래대로 돌아감)
		
		//2. 아이디에 맞는 정보를 조회한다
		MemberDto memberDto = memberDao.selectOne(loginId);
		//System.out.println(memberDto);
		
		//3. 화면에 조회한 정보를 전달한다
		model.addAttribute("memberDto", memberDto);
		
		//4. 연결될 화면을 반환한다
		return "/WEB-INF/views/member/mypage.jsp";
	}



}

    (+) HttpSession 매개변수를 사용

 

 

 - mypage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<jsp:include page="/WEB-INF/views/template/header.jsp"></jsp:include>

<h1>마이페이지</h1><hr>

<h3>${memberDto.memberId}님의 회원 정보</h3>

<table border="1" width="400">
	<tr>
    		<th width="30%">닉네임</th>
    		<td>${memberDto.memberNick}</td>
  	</tr>
  	<tr>
    		<th>이메일</th>
    		<td>${memberDto.memberEmail}</td>
  	</tr>
	<tr>
    		<th>연락처</th>
    		<td>${memberDto.memberContact}</td>
  	</tr>
  	<tr>
    		<th>생년월일</th>
    		<td>${memberDto.memberBirth}</td>
  	</tr>
  	<tr>
    		<th>주소</th>
    		<td>[${memberDto.memberPost}]<br>
    				${memberDto.memberAddress1}, ${ memberDto.memberAddress2 }
    		</td>
  	</tr>
  	<tr>
    		<th>등급</th>
    		<td>${memberDto.memberLevel}</td>
  	</tr>
  	<tr>
    		<th>포인트</th>
    		<td>${memberDto.memberPoint} point</td>
  	</tr>
  	<tr>
    		<th>가입일시</th>
    		<td>
    			<fmt:formatDate value="${memberDto.memberJoin}" pattern="y년 M월 d일 H시 m분 s초"/>
    		</td>
  	</tr>
  	<tr>
    		<th>로그인일시</th>
    		<td>
    			<fmt:formatDate value="${memberDto.memberLogin}" pattern="y년 M월 d일 H시 m분 s초"/>
    		</td>
  	</tr>
</table>

<h3><a href="#">비밀번호 변경</a></h3>
<h3><a href="#">개인정보 변경</a></h3>
<h3><a href="#">회원 탈퇴</a></h3>


<jsp:include page="/WEB-INF/views/template/footer.jsp"></jsp:include>

    (+) Model 개체로 memberDto를 넘겨주었기 때문에 jsp에서 사용 가능

    (+) fmt를 활용하여 출력될 날짜 정보에 대한 패턴 지정

    (+) "#"를 활용하여 링크의 위치를 잡아주지만 실제 이동하지는 않도록 해준다.

 

   - 출력결과

 

 

개인 공부 기록용입니다:)

728x90