declarar directivas JSP taglib en web.xml
Pregunta
Parece recordar haber leído que es posible declarar directivas taglib como:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
en web.xml. Esto elimina la necesidad de duplicar esta directiva en cada archivo JSP donde se usa el taglib. ¿Podría alguien decirme cómo se pueden agregar estas directivas a web.xml?
Solución
El elemento taglib
en web.xml tiene un propósito diferente a la directiva taglib
que tiene arriba.
Como dijo David, la directiva taglib
se requiere en cada página.
Si tiene muchas páginas que usan taglibs comunes, puede atajar esto colocando las directivas taglib en un archivo de inclusión e incluyendo este archivo en cada página. Pero no importa cómo lo haga, la directiva taglib tiene que estar en la página de alguna manera.
Esa etiqueta que debe incluir en cada página tiene este aspecto:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Si tiene un taglib personalizado en una ubicación personalizada, también puede especificar una ubicación relativa a la raíz de la aplicación web:
<%@ taglib prefix="ex" uri="/taglib.tld" %>
Más información sobre la directiva taglib
La directiva taglib
de web.xml asigna etiquetas uris a la ubicación física de su taglib. Es opcional desde JSP 2.0, ya que los contenedores compatibles buscarán en un conjunto de ubicaciones estándar para intentar descubrir automáticamente el taglib: / WEB-INF y sus subdirectorios, / META-INF también para archivos JAR.
Se ve así, en web.xml:
<taglib>
<taglib-uri>
http://www.example.com/taglib
</taglib-uri>
<taglib-location>
/taglib.tld
</taglib-location>
</taglib>
Y el taglib se menciona en la página JSP de esta manera (¡la directiva taglib en cada página es inevitable!):
<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>
Esto es equivalente al segundo ejemplo que di para la directiva taglib anterior. La mayor diferencia está en cómo apunta a la ubicación de taglib.
Esta página contiene un poco más de información.
Otros consejos
Lo siento, estás un poco equivocado. Si una página usa un taglib, debe tener una directiva taglib para ello en la página. Puede colocar las directivas comunes de taglib en un archivo de inclusión que todas sus páginas incluyen con una directiva de inclusión, pero en el momento de la compilación la directiva de taglib tiene que estar allí.
Prefiero NO tener los elementos taglib en web.xml y, en su lugar, hacer que la directiva taglib especifique el valor de URI que se usa en el " uri " elemento en el TLD que está dentro del archivo jar taglib en su WEB-INF / lib.