Frage

Im nicht wirklich vertraut mit, wie das funktioniert in JSP

aber in der

main.jsp Vorlage gibt es diese:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<jsp:include page="/jsp/common_head.jsp"/>

dann in common_head.jsp wir haben dies wieder:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>

ist das notwendig?

oder mit anderen Worten

Sind taglib Erklärungen propagierten Dateien enthalten?

War es hilfreich?

Lösung

Ja, das ist notwendig. Bevor zum ersten Mal ausgeführt wird, wird einzeln jede JSP-Datei in einer eigenständigen Servlet Klasse konvertiert / übersetzt / kompiliert werden. Alle Tags werden zu „echten“ Java-Code / Methoden übersetzt. Wenn Sie nicht über ein taglib erklären, dann wird die JSP-Compiler nicht wissen, was Java-Code / Methoden es generieren müssen / Aufruf für die jeweiligen Tags.

Bei zB Tomcat, werfen Sie einen Blick in den /work Ordner für alle die JSP zusammengestellt. Sehen Sie ihre Quelle und es wird alles klar sein.

Andere Tipps

Das

<jsp:include page="/jsp/common_head.jsp"/>

... tag ist ein dynamisches umfasst was bedeutet, dass es dynamisch die common_head.jsp Seite aufruft, die unabhängig von der darunter Seite kompiliert wird. So sollte die taglib Richtlinie benötigt werden.

Wenn auf der anderen Seite sind Sie ein statische zu tun, umfasst die Verwendung von Include Richtlinie

<%@ include file="/jsp/common_head.jsp" %>

... die Datei gewesen wäre, Kopie kleisterte und und mit der Seite zusammengestellt, aus denen es enthalten ist. Dann sollte die taglib Richtlinie nicht erforderlich.

Auf jeden Fall möchten Sie vielleicht die taglib haben enthalten nur Editor Unterstützung der Tags erhalten Sie während der Entwicklung verwendet werden.

Beachten Sie, dass statische Dateien statisch enthalten sind, auch mit dem jsp: include-Tag

include-Direktive: http: //java.sun. com / products / jsp / Syntax / 1.2 / syntaxref129.html # 997991

jsp umfassen: http://java.sun.com/ Produkte / jsp / Syntax / 1.2 / syntaxref1214.html

Wie Sie eine dynamische Ressource sind darunter, dass Ressource ist „Standalone“, so dass es jeder Tag-Bibliothek enthalten sollte, die Sie verwenden. Andere Frage ist, wenn Sie diese Tags verwenden ...

Ja, es für JSP-Kompilierung erforderlich ist. Sie können auch anstelle von c.tld unter taglib verwenden.

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

Hoffnung dies helfen wird,

In anderen Template-Systemen die Definitionen in der Regel übernommen. Ich sehe nicht, warum sollten Sie es wieder verwenden müssen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top