JSP에서는 포함 된 파일에서 태그 라이브러리를 다시 클레어해야합니까?

StackOverflow https://stackoverflow.com/questions/1683109

  •  18-09-2019
  •  | 
  •  

문제

나는 이것이 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"%>

이것이 도움이되기를 바랍니다

다른 템플릿 시스템에서는 일반적으로 정의가 이어졌습니다. 왜 다시 사용해야하는지 알지 못해

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top