Domanda

Im non realmente a conoscenza di come questo funziona in JSP

ma nel

template main.jsp c'è questo:

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

poi nel common_head.jsp abbiamo questo nuovo:

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

è necessario?

o in altre parole

dichiarazioni taglib propagate per includere i file?

È stato utile?

Soluzione

Sì, questo è necessario. Prima eseguito per la prima volta, tutti i file JSP sarà individualmente convertito / tradotto / compilato a una classe Servlet standalone. Tutti i tag saranno tradotti al "vero" codice Java / metodi. Se non si dichiara un taglib, poi il compilatore JSP non so cosa il codice Java / metodi che hanno bisogno di generare / chiamare per i tag particolari.

In caso di, ad esempio Tomcat, date un'occhiata nella cartella /work per tutti quelli compilati JSP di. Visita il loro fonte e sarà tutto chiaro.

Altri suggerimenti

Il

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

... tag è una dinamica includono il che significa che richiama dinamicamente nella pagina common_head.jsp, che viene compilato in modo indipendente della pagina compresi. Così dovrebbe essere necessaria la direttiva taglib.

Se, d'altra parte si dovesse fare un statici includono utilizzando il includono di direttiva

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

... il file sarebbe stato copia-incollato e e compilato con la pagina da cui è incluso. Quindi non dovrebbe essere necessario la direttiva taglib.

In ogni caso si consiglia di avere la taglib incluso solo per ottenere sostegno editore dei tag è possibile utilizzare durante lo sviluppo.

Si noti che i file statici sono incluse staticamente, anche con il jsp: include tag

direttiva include: http: //java.sun. com / prodotti / jsp / sintassi / 1.2 / syntaxref129.html # 997.991

jsp includono: http://java.sun.com/ prodotti / jsp / sintassi / 1.2 / syntaxref1214.html

Come si sta tra cui una risorsa dinamica, quella risorsa è "stand-alone", in modo da dovrebbe includere qualsiasi libreria di tag che si sta utilizzando. Altra questione è se si sta utilizzando questi tag ...

Sì, è richiesto per la compilazione JSP. È inoltre possibile utilizzare sotto taglib invece di c.tld.

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

speranza che questo vi aiuterà

In altri sistemi di template definizioni di solito riportati. Non vedo il motivo per cui si dovrebbe avere per usare di nuovo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top