jspf 란 JSP Fragment의 약자로 파편 즉 쪼개서 따로 저장한 jsp 조각을 말한다.
jspf 파일을 사용하면 코드 중복이 줄어들고, 유지 보수 관리가 쉬워진다.
액션태그로
<jsp:include page="top.jspf"/>
이렇게 표현하거나
디렉티브로
<%@ include file="top.jspf" %>
이렇게 써주면 되는데
액션태그의 경우 컴파일이 끝난 결과를 가져오는 반면, 디렉티브는 페이지 전체의 내용을 그대로 가져온다.
그런데 jsp 파일로도 include가 가능한데 왜 굳이 jspf 파일을 쓰는걸까?
그 이유는 변수 호환성 때문이다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String name = "이사라";
String id = "SarahLee";
%>
이렇게 변수를 선언한 top.jsp 파일이 있다고 가정해보자.
<body>
<jsp:include page="top.jsp"/>
<div>
<div>이름 : <%=name %></div>
<div>아이디 : <%=id %></div>
</div>
</body>
</html>
그 경우 액션태그 <jsp:include page="top.jsp"/> 를 이용하여 include 한다고 해도
top.jsp 에 있던 변수 name과 id 값이 호환되지 않고 'name/id cannot be resolved to a variable' 이라는 메시지가 뜬다.
(아예 오류가 뜨기 때문에 홈페이지 예시 또한 나오지 않는다)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String username = "문동은";
%>
반면에 이렇게 변수를 선언한 header.jspf 파일은
<body>
<%@ include file="header.jspf" %>
<div>
<p>
이름= <%=username %>
</p>
</div>
</body>
디렉티브로 <%@ include file="header.jspf"%> 메인코드에 include할 경우
하나의 파일로 실행되어 데이터가 호환이 가능하다.
'JSP > jsp' 카테고리의 다른 글
수정)게시판 내 삭제 기능 jsp작성 도중 풀리지 않는 의문 해결! (0) | 2023.02.21 |
---|