JSP에서는 포함 된 파일에서 태그 라이브러리를 다시 클레어해야합니까?
문제
나는 이것이 JSP에서 어떻게 작동하는지에 익숙하지 않다
그러나
main.jsp 템플릿이 다음과 같습니다.
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<jsp:include page="/jsp/common_head.jsp"/>
그런 다음 common_head.jsp에서 다시 있습니다.
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
이것이 필요합니까?
즉, 말로
Taglib 선언은 파일을 포함하도록 전파됩니까?
해결책
예, 이것은 필요합니다. 처음으로 실행되기 전에 모든 JSP 파일은 개별적으로 변환/번역/독립형으로 컴파일됩니다. Servlet
수업. 모든 태그는 "실제"Java 코드/메소드로 변환됩니다. Taglib를 선언하지 않으면 JSP 컴파일러는 특정 태그를 생성/호출 해야하는 Java 코드/메소드를 모릅니다.
예를 들어 Tomcat의 경우 /work
모든 컴파일 된 JSP의 폴더. 그들의 출처를 보면 모두 명확해질 것입니다.
다른 팁
그만큼
<jsp:include page="/jsp/common_head.jsp"/>
... 태그는 동적이지만 포함 된 페이지와 독립적으로 컴파일 된 common_head.jsp 페이지를 동적으로 호출한다는 의미를 포함합니다. 따라서 Taglib 지시문이 필요합니다.
반면에 정적을 수행 해야하는 경우 지령
<%@ include file="/jsp/common_head.jsp" %>
... 파일이 있었을 것입니다 복사 그리고 포함 된 페이지로 컴파일되었습니다. 그런 다음 Taglib 지시문이 필요하지 않아야합니다.
어쨌든 Taglib에 개발 중에 사용하는 태그의 편집기 지원을 받기 위해 TAGLIB에 포함시킬 수 있습니다.
정적 파일은 JSP를 사용하여 정적으로 포함되어 있습니다.
지침 포함 : http://java.sun.com/products/jsp/syntax/1.2/syntaxref129.html#997991
JSP 포함 : http://java.sun.com/products/jsp/syntax/1.2/syntaxref1214.html
동적 리소스를 포함하므로 해당 리소스는 "독립형"이므로 사용중인 태그 라이브러리가 포함되어야합니다. 다른 질문은 그 태그를 사용하는지입니다 ...
예 JSP 컴파일에는 필요합니다. C.tld 대신 아래 taglib를 사용할 수도 있습니다.
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
이것이 도움이되기를 바랍니다
다른 템플릿 시스템에서는 일반적으로 정의가 이어졌습니다. 왜 다시 사용해야하는지 알지 못해