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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top