SPRING FRAMEWORK

jsp:include를 이용한 페이지 이동

Ambitions 2022. 2. 24. 11:27

최근에 회사에서 개발을 하던 중 중간리뷰를 위해서 화면을 하나 만들었는데, 화면에서 제공하는 기능중 동적으로 다른 화면을 이동할 수 있는 기능이 필요했고, 시스템의 레거시때문에 jsp문법을 사용할 수 밖에없어서 오랜만에 jsp:include를 사용해보았다.

 

최근 vue를 이용해서 개발을 하다보니 jsp문법이 생각이 안나서 조금 찾아보는데 시간이 걸렸었다.

먼저 코드는 다음과 같이 작성했다.

1
2
3
4
5
6
<!-- html 생략 -->
<%@ include file="page.jsp" %> <!-- 정적인 화면은 이렇게썼다면 -->
 
<jsp:include page="./${pageName}.jsp">
    <jsp:param name="pageName" value="${pageName}"/> <!-- 페이지명을 변수로 받아서 전달 -->
</jsp:include>
cs

왜 controller단에서 처리하지 않고 이렇게 했는가에 대한 의문이들 수 있는 코드이긴한데, 실제로 적용될 코드가 아니기도 하고, 개발중에 협의되지 않은 여러가지 부분 때문에 대략적으로 작성해 보았다. 

 

간단하게 @include와 jsp:include를 정리하면 큰 골자만 보면 둘 다 타 jsp를 포함시켜서 사용하는 건 같은데, 

내부적으로 동작하는건 다르다고 한다.

jsp:include같은 액션태그는 각각 다른 페이지가 동작한다고 보면 이해가 쉬울 것 같고, jsp:include같은 디렉티브의 경우에는 하나의 페이지가 모든 페이지의 정보를 포함하고 있는 형태라고 보면 이해가 될 것 같다.

 

자세한 내용을  https://dololak.tistory.com/515#​ 읽어보면 이해가 쉬울 것 같다. 

(사실 내가 따로 정리할까 했는데 다른 블로그들이 너무 정리가 잘되있어서 대충썼다.)