Taglib

9 respostas
R

Oi pessoal !!!

Estou com um problema em utilizar taglibs.

Estou utilizando eclipse 3.0, e tomcat.

A minha estrutura é a seguinte:

tenho meus JSPs nesta pasta:
C:\Tomcat_4_1\webapps\Aplicacao\JSPs

O meu *.tld está na raiz que está o web.xml ou seja i[/i]

o meu web.xml esta assim:

<taglib>
    <taglib-uri>/myTLD</taglib-uri> 
    <taglib-location>/WEB-INF/taglib.tld</taglib-location> 
  </taglib>

o meu JSP chama esta taglib da seguinte forma:

<%@ taglib uri="/myTLD" prefix="tb"%>
<tb:myTag>

Esta acontecendo o seguinte erro:

org.apache.jasper.JasperException: File "/myTLD" not found

PS: Outros JSPs funcionam normalmente, mas quando tento usar taglibs, está dando este erro.

Agradeço antecipadamente,
Roberto

[size=“11”]
[color=“red”]

  • Editado: Lembre-se de usar BBCode em seus códigos para mantê-los identados e mais legíveis para outros usuários - Matheus[/color][/size] :joia:

9 Respostas

M

qual é a taglib?

D

já tentou tirar o / ?
outra coisa o seu jar referente a tag está na sua aplicação lib?
o seu tld tem o mesmo nome?
pelo que você explicou está certo!!
Creio que só nomes estejam disconvergindo.

R

diogoacl,

ja tentei tirar o “/” mas não adianta do mesmo jeito, tb tentei colocar o nome da taglib direto na uri do jsp, mas tb não adianta.

quanto ao jar esta no meu lib, realmente não esta, mas não sabia que teria que colocar, pois ja me refiro ao meu tld no meu web.xml.

o que vc recomenda que eu empacote meu tld em um jar e jogue no meu /lib ?!?!?

Abraços,
Roberto

R

isso

empacote teus binários e os tlds em um jar e seja feliz! :grin:

M

Salve,

cara faça um teste assim:

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

:okok:

M

Cara, pega um Tomcat 5 (que já existe a muito tempo), coloque o arquivo .tld dessa sua taglib em algum subdiretório de WEB-INF (como por ex /WEB-INF/tlds, só por organização), e no seu Jsp, chame:

<%@ taglib prefix="seuPrefixo" uri="uriEspecificadaoNoSeuTLD" %>

Pronto, é só. Não tens que escrever nada no web.xml, e muito menos dizer o caminho até a tld, isso é trabalho do container.

R

Mesmo tirando do web.xml e colocando a referencia do *.tld direto no uri do jsp não está dando certo.

coloquei no meu jsp o seguinte:

<%@ taglib uri="/WEB-INF/tlds/taglib.tld" prefix="tb" %>
<tb:myTag/>

e mesmo assim está dando erro. O erro do jsp é o seguinte:

apache.jasper.JasperException: XML parsing error on file /WEB-INF/tlds/taglib.tld: (line 9, col 13): Element type “tagclass” must be declared.

na minha taglib acho que não tem nenhum erro, mas o tomcat acusa assim mesmo.

segue minha taglib:

<taglib>
	<tag>
		<name>myTag</name>
		<tagclass>com.livro.cap11.MyCustomTag</tagclass>
	</tag>

</taglib>

não empacotei em um jar. é necessário ?!
estou fazendo algo errado ?!?!

Agradeço antecipadamente a todos !!

Abraço,
Roberto

[size=“11”]
[color=“red”]

  • Editado: Lembre-se de usar BBCode em seus códigos para mantê-los identados e mais legíveis para outros usuários - Matheus[/color][/size] :joia:
M

“robertocsp”:
Mesmo tirando do web.xml e colocando a referencia do *.tld direto no uri do jsp não está dando certo.

coloquei no meu jsp o seguinte:

<%@ taglib uri="/WEB-INF/tlds/taglib.tld" prefix="tb" %>
<tb:myTag/>


Roberto, a o atributo uri da diretiva taglib deve ser o valor específicado na tag <uri> do teu tld.

O seu tld está errado. Note que está faltando a tag <uri> que mencionei. E o correto é <tag-class> e não <tagclass>. Faça assim:

&lt;taglib ...&gt;
   &lt;tlib-version&gt;1.2&lt;/tlib-version&gt;
   &lt;uri&gt;MyFirstTag&lt;/uri&gt;
   &lt;tag&gt;
      &lt;name&gt;myTag&lt;/name&gt;
      &lt;tag-class&gt;com.livro.cap11.MyCustomTag&lt;/tag-class&gt;
      &lt;body-content&gt;empty&lt;/body-content&gt;
   &lt;/tag&gt;
&lt;/taglib&gt;

e no seu jsp, use assim a diretiva:

&lt;%@ taglib prefix="tb" uri="MyFirstTag" %&gt;
&lt;tb&#58;myTag/&gt;

Qualquer dúvida, poste. :joia:

R

Matheus isso esta muito estranho.

Realmente vc tinha razao meu tld estava errado, mas mesmo o acertando não funcionou.

Copiei exatamente como vc postou no no portal, mas aconteceu o seguinte erro:

org.apache.jasper.JasperException: File “/JSPs/MyFirstTag” not found

fiz a seguinte mudança no JSP e o erro mudou:

JSP:

<%@ taglib prefix=“easy” uri="/WEB-INF/tlds/taglib.tld" %>
<easy:myTag/>

Erro: org.apache.jasper.JasperException: XML parsing error on file /WEB-INF/tlds/taglib.tld: (line 16, col 8): The content of element type “tag” must match "(name,tag-class,tei-class?,body-content?, …

Taglib:
<taglib>

&lt;tlib-version&gt;1.2&lt;/tlib-version&gt; 
&lt;uri&gt;MyFirstTag&lt;/uri&gt; 

&lt;tag&gt;
	&lt;short-name&gt;&lt;/short-name&gt;
	&lt;name&gt;myTag&lt;/name&gt;
	&lt;tag-class&gt;com.livro.cap11.MyCustomTag&lt;/tag-class&gt;
	&lt;body-content&gt;empty&lt;/body-content&gt;
&lt;/tag&gt;

</taglib>

Matheus,
pode ser que eu esteja errado, mas o que eu estou percebendo é que colocando o caminho absoluto da taglib na diretiva taglib, ele encontra o arquivo, mas da erro por algum motivo, mas se coloco o valor relativo, ele nem encontra a taglib.

Desde já agradeço,
Roberto Costa

Criado 2 de agosto de 2005
Ultima resposta 9 de ago. de 2005
Respostas 9
Participantes 6