본문 바로가기
Category/Project

[팀프로젝트] JSP Include 동적변수 문제 --해결!

by developer__Y 2024. 1. 24.
발생한 문제 

 

Main페이지에서는 사용자별 프로필 이미지와 이름,사번을 DB에서 받아와 정상적으로 잘 출력하는데

다른 View에서도 공통적으로 해당하는 Nav부분이라 따로 jsp파일을 빼서

다른 모든 view에 jsp:include를 해서 사용하려고 하면, 다른 view에서는 해당 nav의 동적변수를

받아오질 못한다.

분명 프로필 이미지는 잘 받아오는데 부모 jsp에서 출력하는 동적 변수만 가져오지못해서 여러 방법을 시도해봤다.

 

1. 동적 include를 통해 기존의 부모 jsp가 Controller에서 받아온 User 객체의 변수를 해당 파일을 include한 다른 jsp파일에서 사용하려고 시도했지만 실패

2. User 객체의 변수를 nav.jsp에서 제이쿼리를 통해 지역변수로 바꾼뒤, $().html() 메소드를 통해

HTML코드를 삽입하면서 변수를 넣어줘도 실패

3. JSP의 include 할때 다른 jsp간에 동적변수를 옮길때 request객체를 통해 받은 객체를 스크립틀릿을 사용해 

변수 선언하고 <% %> 표현식으로 할당해줬지만 실패..

 

아직까지 방법을 찾지 못하고있다.

도대체 무엇이문제일까.. 

 

컨트롤러 :

Controller

 

 

View : nav.jsp

 

View2 : people.jsp

 

 

 

 


 

드디어 해결했다!!

 

문제는 해당 jsp를 include하기위해 따로 jsp파일로 분리하면서 기존 Controller와의 연결이 끊어져 변수를 가져오지 못했던것이었다.!

main.jsp의 일정부분을 따로 nav.jsp로 만들었더니 기존의 Controller가 main.jsp 뷰로 보내던 Model값들을 nav.jsp는 쓸수없었던거였다. 그래서 동적 include를 통해 main.jsp에서 nav.jsp로 변수들을 보내줘야 했던것이었다.

결국 동적 include에 대한 개념을 확실히 이해하지못해 생긴 문제였다.. 문제를 해결하기위해 고민하다보니 동적 include에 대한 이해가 확실히 되었다.

 

 

해결방법

 

 

 

이를 해결해주기위해 include한 jsp를 호출하는 컨트롤러에 session을 이용해 사용자 정보를 다시받아와 해당 view로 사용자 정보를 모델에 담아 보내주었더니 정상적으로 데이터를 받아와 include된 jsp에 출력해주었다.