프로젝트/MBTI 게시판

Day4] navi 완성 및 각 controller에 탑재

김휴고 2023. 9. 20. 10:04

* Navigator는 갱신되지 않도록 두고, 클릭 이벤트에 따라 Container 부분만 변하게 만드는 건 패스. 현재 내가 jsp로 할 수 있는 영역이 아닌 것 같다. 이에 따라 오늘부터는 클릭 이벤트가 넘겨주는 값에 따라 다른 Container가 나오도록 한다.

1. header.jsp에서 li로 작성했던 navi를 a 태그로 변경

	<div class="navigator">
		<a href="./homeCtrl.jsp" class="homeBtn">Home</a>
		<a href="./testCtrl.jsp" class="testBtn">Test</a>
		<a href="./mapCtrl.jsp" class="mapBtn">Counseling Center</a>
		<a href="./loginCtrl.jsp" class="loginStr">Log In</a>
	</div>

 

2. Log in  여부에 따라 navigator에서 Log in 버튼 다르게 출력하기

로그인 되지 않은 상태라면 'Log In' 링크, 로그인 된 상태라면 '(사용자 이름)님 환영합니다!' 출력.

homeCtrl에서 session을 검사해서 log in 여부 판단하기.

 

String loginBtn = "<a href='./loginCtrl.jsp' class='loginBtn'>Log In</a>";

if (request.getMethod().equals("GET")) {
	/* session.setAttribute("container", "<jsp:include page=" + container + " />"); */
	/* session.setAttribute("container", "boardLink.jsp"); */
	request.setAttribute("container", container);
	session.setAttribute("loginBtn", loginBtn);

	pageContext.forward(viewPath + "home.jsp");
}

 

  • log in 정보를 session에 저장하는 이유 : 여러 페이지에서 계속 로그인 상태를 유지해야 하므로
  • (변경) container 정보를 request에 저장하는 이유 : forward로 이동할 때, pageContext에 저장한 정보는 함께 전달되지 않는다. 전날 pageContext를 사용하면서도 잘 됐던 이유는 주석 처리한 코드에서 session에 저장한 적 있어서인 것으로 추측된다. home.jsp가 호출된 후에는 소멸되도 되는 정보이므로 request를 사용한다.

3. testCtrl.jsp, mapCtrl.jsp 만들기

  • testCtrl : MBTI 외부 테스트 링크 제공 및 약식 에니어그램 테스트 제공
  • mapCtrl : 오프라인 성격 상담소 위치 제공

이번 프로젝트 기간(3일...) 내에 해당 페이지들을 완성할 수 있을지 모르겠지만, 일단 링크에 연결해둘 빈 페이지라도 만들어 두기로 한다.

 

4. logo 버튼에 homeCtrl.jsp 연결, CSS 수정

여기서 homeCtrl.jsp 관련은 일단 잠시 두고 다른 페이지들을 수정하기로 한다.

 

5. ~Ctrl.jsp -> ~Controller.jsp로 이름 수정 : 팀원들과 파일명 통일

6.  listCtrl.jsp와 viewCtrl.jsp에 navigator 달기

이 과정에서 home.css에서 header 부분 추출해 header.css 파일로 독립시켰다. 다른 컨트롤러에서 스타일을 적용시킬 때 불필요한 영향을 덜 받게 하기 위해.

view 페이지에 Navi를 달았다. 데이터를 db와 연결하는 작업은 다른 팀원들이 하고 있다.

 

 

 

[Daily Log]

  • git 지속 활용 중

계속 변경사항을 git에 commit, push 하며 진행 중. 습관 들이니까 어렵지 않은 듯하다.
commit msg도 간결, 상세하게 적으려고 노력 중

  • 팀원 1명 이탈

   우리 팀은 지난 미니프로젝트 때는 5명이었고, 이번에는 4명으로 시작했다. 그리고 지금은 3명이 남았다. 두 분은 각자의 이유로 수업을 이탈하셨다. 이에 따라 기존 기획 중 새로운 기능을 구현하는 것은 대부분 미뤄두고, 내가 맡은 페이지 외에도 기존 페이지를 JS에서 JSP로 변경하는 작업을 우선하기로 했다.

 

  • 주 강사님의 첨언

  말도 안 되는 짧은 기간에 너무 많은 것을 훑고 지나가다보니 우리가 내용을 정리하고 소화할 시간이 많이 부족했던 것 같다. 이번 프로젝트는 대단한 성과보다 할 수 있는 만큼, 배운 것을 조금 활용해본다는 생각으로 진행해보시길.