Arquivos TLD's... [RESOLVIDO]

6 respostas
zirocool

Seguinte galera, uma dúvida q me assola, quando eu for usar uma taglibrary, e o descritor (tld) tiver dentro de um jar, há uma maneira de eu referenciar ele pelo web.xml?

Ou eu tenho que extrair ela, e colocar em um diretório para o container carregá-la??

6 Respostas

marcelo_mococa

se vc estiver usando a especificação 2.4 das servlets, naum precisa de colocar o tld no web-inf e nem de mapear nada no web.xml.

pegeu a uri da taglib, normalmente no próprio arquivo tld e use direto na jsp.

zirocool

Mas que blz!! :smiley:
Gracias!!

[ ]'s…

Rafael_Nunes

Na verdade é considerado uma ‘má prática’, deixar a localização de suas tags tão hard-code.
A especificação de JSP 2.0 permite isso, mas é aconselhável você mapear no deployment descriptor:

<taglib>
  <taglib-uri>myTags</taglib-uri>
  <taglib-location>/WEB-INF/lib/mytag.jar</taglib-location>
</taglib>
J

Rafael Nunes:
Na verdade é considerado uma ‘má prática’, deixar a localização de suas tags tão hard-code.
A especificação de JSP 2.0 permite isso, mas é aconselhável você mapear no deployment descriptor:

<taglib> <taglib-uri>myTags</taglib-uri> <taglib-location>/WEB-INF/lib/mytag.jar</taglib-location> </taglib>

Por que?

Rafael_Nunes

Para o caso de você trocar seu diretório de arquivos TLD, não precisar ficar alterando seus .jsp
Quando o container carrega a aplicação, ele cria um Map com chave/valor = uri/arquivo tld, logo, inserindo a URI no jsp, é indiferente a localização dos .tld

J

Rafael Nunes:
Para o caso de você trocar seu diretório de arquivos TLD, não precisar ficar alterando seus .jsp
Quando o container carrega a aplicação, ele cria um Map com chave/valor = uri/arquivo tld, logo, inserindo a URI no jsp, é indiferente a localização dos .tld

Agora entendi… Mas o que ele estava falando é que agora (Servlet 2.4/2.3) você não precisa mais configurar TLD muito menos ter o TLDs em um diretório na sua aplicação. As taglibs têm uma URI (pense nisso como se fosse o pacote da classes ou o seu namespace) e pronto. Você só precisa usar essa URI, por exemplo a taglib core do JSTL tem a URI “http://java.sun.com/jstl/core”, então você só precisa declarar a sua taglib usando essa URI:

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

Todas as taglibs que já usei na vida, têm uma URI.

Agora, esse argumento de que você deve configurar por que o arquivo pode mudar de lugar é tão 2005. :slight_smile: Vai dizer que você têm um XML configurando todas as URLs dos recursos da sua aplicação, por que amanha você pode querer muda-las de lugar?

Criado 29 de maio de 2006
Ultima resposta 30 de mai. de 2006
Respostas 6
Participantes 4