최근에 회사에서 개발을 하던 중 중간리뷰를 위해서 화면을 하나 만들었는데, 화면에서 제공하는 기능중 동적으로 다른 화면을 이동할 수 있는 기능이 필요했고, 시스템의 레거시때문에 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# 읽어보면 이해가 쉬울 것 같다.
(사실 내가 따로 정리할까 했는데 다른 블로그들이 너무 정리가 잘되있어서 대충썼다.)
'SPRING FRAMEWORK' 카테고리의 다른 글
CustomRepository의 PropertyReferenceException (0) | 2023.04.28 |
---|---|
QueryDsl에서 서브쿼리 사용하기 (0) | 2021.09.13 |
@Transient 어노테이션 사용해보기 (0) | 2021.01.15 |
개발중 발생했던 @Autowired 관련 이슈 정리 (1) | 2021.01.07 |
Spring JPA에서 @Query를 사용하는 방법. (0) | 2020.09.22 |