Domanda

Mi sembra di aver letto che è possibile dichiarare direttive taglib come:

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

in web.xml. Ciò elimina la necessità di duplicare questa direttiva in ogni file JSP in cui viene utilizzato il taglib. Qualcuno potrebbe dirmi come queste direttive possono essere aggiunte a web.xml?

È stato utile?

Soluzione

L'elemento taglib in web.xml ha uno scopo diverso dalla direttiva taglib che hai sopra.

Come ha detto David, la direttiva taglib è richiesta su ogni pagina.

Se hai molte pagine che usano taglib comuni, puoi collegarlo inserendo le direttive taglib in un file include e includendo questo file in ogni pagina. Ma non importa come lo fai, la direttiva taglib deve essere in qualche modo sulla pagina.

Il tag che devi includere in ogni pagina è simile al seguente:

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

Se hai un taglib personalizzato in una posizione personalizzata, puoi anche specificare una posizione relativa alla radice webapp:

 <%@ taglib prefix="ex" uri="/taglib.tld" %>

Ulteriori letture sulla direttiva taglib

La direttiva taglib di web.xml mappa i tag uris sulla posizione fisica del tuo taglib. È facoltativo da JSP 2.0, poiché i contenitori conformi cercheranno in una serie di posizioni standard per provare a scoprire automaticamente i taglib: / WEB-INF e le sue sottodirectory, / META-INF nonché i file JAR.

Sembra così, in web.xml:

<taglib>
  <taglib-uri>
    http://www.example.com/taglib
  </taglib-uri>
  <taglib-location>
    /taglib.tld
  </taglib-location>
</taglib>

E il tagliob è referenziato nella pagina JSP in questo modo (la direttiva taglib su ogni pagina è inevitabile!):

<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>

Questo equivale al secondo esempio che ho dato per la direttiva taglib sopra. La differenza più grande sta nel modo in cui indichi la posizione di taglib.

Questa pagina contiene alcune informazioni in più.

Altri suggerimenti

Scusa, ti sbagli leggermente. Se una pagina usa un taglib, devi avere una direttiva taglib nella pagina. Puoi inserire le direttive taglib comuni in un file include che tutte le tue pagine includono con una direttiva include, ma al momento della compilazione la direttiva taglib deve essere lì.

Preferisco NON avere gli elementi taglib in web.xml, e invece la direttiva taglib specifica il valore URI che viene usato in " uri " elemento nel TLD che si trova all'interno del file jar taglib nel tuo WEB-INF / lib.

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