나는이 질문에 대해 답변하는 것이 매우 늦다는 것을 알고 있지만,이 상황에 처해 있고 대답을 찾는 사람들에게 도움이 될 수 있습니다.
<jsp: include>
태그를 사용하여 jsp를 포함하도록 단단히 묶이지 않은 경우 제 대답이 적용됩니다. 대신 <%@include file="/WEB-INF/views/path-to-jsp.jsp" %>
을 사용하여 페이지에서 다른 JSP를 가져올 수 있으며이 페이지는 <c:forEach>
태그 루프 변수를 사용할 수 있습니다.
예를 들면.
<c:forEach items="${users}" var="user">
<%@include file="/WEB-INF/views/path-to-jsp.jsp" %> <!-- here ${user} can be use in importing jsp file. -->
</c:forEach>
가 복사 및 붙여 넣기 것처럼 <%@include file="" %>
태그, 태그가 포함 된 JSP로 명명 된 파일의 내용을 주입하기 때문에 그것은 노력하고 있습니다. 이 작업은 포함 된 파일의 내용이 파싱되기 전에 수행됩니다. 대신 포함 된 JSP가 파싱되는 동안 파싱됩니다. 이것은 C#include 지시문에 가깝습니다. 사전 처리 중에 포함 된 파일이 컴파일되기 전에 "붙여 넣기"됩니다. 콘텐츠가 포함 된 후에는 동일한 컨텍스트에서 모두 평가되므로 포함 된 코드가 콘텐츠에 단순히 입력 된 경우 동일한 액세스 및 제약 조건이 적용됩니다.
반면에 <jsp:include page=""/>
태그는 지정된 페이지를 렌더링 한 결과가 태그의 지점에있는 포함 JSP에 삽입된다는 점에서 다르게 작동합니다. 기본적으로 요청 된 페이지를 동일한 컨테이너에 별도의 렌더링 요청으로 제출하고 파일 내용이 아닌 결과를 가져 와서 수행합니다. 이 요청은 태그를 포함하는 페이지와 동일한 페이지 정보를 사용하지 않는 자체 컨텍스트에서 수행됩니다. 이는 특히 포함 된 컨텐츠에 상충되는 변수가있는 경우에 특히 유용 할 수 있습니다.
나는 더 우아한 방법을 찾고 있었지만 결국 그렇게했습니다. 그건 그렇고 변수의 이름을 바꿀 필요는 없습니다 :' '잘 작동하고 덜 혼란 스럽습니다. . –
Dmitri