Problemas com Taglib

Prezados Colegas,

Estou tentado aprendar a utilizar taglibs mas estou com problemas:

Quando eu rodo o jsp que chama a tag ele me da erro no parse do XML falando que a tag <tag> não suporta <tagClass> … já chequei o tld é parece que está ok… será que alguém pode me dar uma ajudinha?

Desde já… valeu hein…

user.tld

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
&lt;!DOCTYPE taglib
PUBLIC &quot;-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN&quot;
&quot;http&#58;//java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd&quot;&gt;


&lt;taglib&gt;
 &lt;tlibversion&gt;1.0&lt;/tlibversion&gt;
 &lt;jspversion&gt;1.1&lt;/jspversion&gt;
 &lt;shortname&gt;td&lt;/shortname&gt;
 &lt;info&gt;
    
 &lt;/info&gt;
 
&lt;tag&gt;
	&lt;name&gt;userList&lt;/name&gt;
	&lt;tagClass&gt;xke.tags.ListUser&lt;/tagClass&gt;
	&lt;info&gt;Lista os usuários cadastrados&lt;/info&gt;
	&lt;bodycontent&gt;EMPTY&lt;/bodycontent&gt;&#93;
	
	&lt;attribute&gt;
		&lt;name&gt;idUser&lt;/name&gt;
		&lt;required&gt;false&lt;/required&gt;
		&lt;rtexpvalue&gt;true&lt;rtexpvalue&gt;
	&lt;/attribute&gt;
	
	&lt;attribute&gt;
		&lt;name&gt;name&lt;/name&gt;
		&lt;required&gt;false&lt;/required&gt;
		&lt;rtexpvalue&gt;true&lt;rtexpvalue&gt;
	&lt;/attribute&gt;
	
	&lt;attribute&gt;
		&lt;name&gt;email&lt;/name&gt;
		&lt;required&gt;false&lt;/required&gt;
		&lt;rtexpvalue&gt;true&lt;rtexpvalue&gt;
	&lt;/attribute&gt;
	
	&lt;attribute&gt;
		&lt;name&gt;username&lt;/name&gt;
		&lt;required&gt;false&lt;/required&gt;
		&lt;rtexpvalue&gt;true&lt;rtexpvalue&gt;
	&lt;/attribute&gt;
&lt;/tag&gt;
&lt;/taglib&gt;

ListUser.java


package xke.tags;

import xke.business.BusinessUser;
import xke.entity.User;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

import java.io.*;
import java.util.*;


public class ListUser extends TagSupport&#123;

	private Long idUser = null;
	private String name = null;
	private String email = null;
	private String username = null;
	
	private int page;
	
	public int doStartTag&#40;&#41;&#123;
		try&#123;
			JspWriter out = pageContext.getOut&#40;&#41;;
			StringBuffer sb = new StringBuffer&#40;&#41;;
			
			BusinessUser bu = new BusinessUser&#40;&#41;;
			ArrayList al = null;
			int page = 1;
			page = this.getPage&#40;&#41;;
			
			if &#40;&#40;this.getIdUser&#40;&#41; == null&#41; &amp;&amp;
				&#40;this.getName&#40;&#41; == null&#41; &amp;&amp; 
				&#40;this.getEmail&#40;&#41; == null&#41; &amp;&amp;
			    &#40;this.getUsername&#40;&#41; == null&#41;&#41;&#123;
				al = &#40;ArrayList&#41; bu.find&#40;page&#41;;    	
			    &#125;
			else&#123;
				al = &#40;ArrayList&#41; bu.find&#40;page,this.getIdUser&#40;&#41;,&quot;%&quot; + this.getName&#40;&#41; + &quot;%&quot; ,&quot;%&quot; + this.getEmail&#40;&#41; + &quot;%&quot; ,  &quot;%&quot; + this.getUsername&#40;&#41; + &quot;%&quot; ,null&#41;;
			&#125;					
			
			Iterator i = al.iterator&#40;&#41;;
			
			while&#40;i.hasNext&#40;&#41;&#41;&#123;
				User u = &#40;User&#41; i.next&#40;&#41;;
				sb.append&#40;&quot;&lt;tr&gt;
&quot;&#41;;
					sb.append&#40;&quot;&lt;td&gt;&quot;&#41;;
						sb.append&#40;u.getName&#40;&#41;&#41;;
					sb.append&#40;&quot;&lt;/td&gt;
&quot;&#41;;
					sb.append&#40;&quot;&lt;td&gt;&quot;&#41;;
							sb.append&#40;u.getUsername&#40;&#41;&#41;;
					sb.append&#40;&quot;&lt;/td&gt;
&quot;&#41;;
					sb.append&#40;&quot;&lt;td&gt;&quot;&#41;;
							sb.append&#40;u.getEmail&#40;&#41;&#41;;
							sb.append&#40;&quot;&lt;/td&gt;&quot;&#41;;
					sb.append&#40;&quot;&lt;/tr&gt;
&quot;&#41;;
					sb.append&#40;&quot;&lt;td&gt;&quot;&#41;;
								sb.append&#40;&quot;Excluir&quot;&#41;;
					sb.append&#40;&quot;&lt;/td&gt;
&quot;&#41;;
				sb.append&#40;&quot;&lt;/tr&gt;
&quot;&#41;;
			&#125;
			
			out.println&#40;sb.toString&#40;&#41;&#41;;	
		
		&#125;catch&#40;IOException ioe&#41;&#123;
			ioe.printStackTrace&#40;&#41;;			
		&#125;
		catch&#40;Exception e&#41;&#123;
			e.printStackTrace&#40;&#41;;
		&#125;
		return &#40;SKIP_BODY&#41;;
	&#125;

	public String getEmail&#40;&#41; &#123;
		return email;
	&#125;

	public Long getIdUser&#40;&#41; &#123;
		return idUser;
	&#125;

	public String getName&#40;&#41; &#123;
		return name;
	&#125;

	public int getPage&#40;&#41; &#123;
		return page;
	&#125;
	public String getUsername&#40;&#41; &#123;
		return username;
	&#125;

	public void setEmail&#40;String string&#41; &#123;
		email = string;
	&#125;

	public void setIdUser&#40;Long long1&#41; &#123;
		idUser = long1;
	&#125;

	public void setName&#40;String string&#41; &#123;
		name = string;
	&#125;

	public void setPage&#40;int i&#41; &#123;
		page = i;
	&#125;

	public void setUsername&#40;String string&#41; &#123;
		username = string;
	&#125;

&#125;

Arquivo JSP

&lt;%@ taglib uri=&quot;/WEB-INF/user.tld&quot; prefix=&quot;td&quot; %&gt;
&lt;%@ page language=&quot;java&quot; %&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//w3c//dtd html 4.0 transitional//en&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Lomboz JSP&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#FFFFFF&quot;&gt;
	&lt;td&#58;userList/&gt;
&lt;/body&gt;
&lt;/html&gt;

é por que a tag é
<tag-class>
e não <tagClass>

Continua com problemas agora é:

org.xml.sax.SAXParseException: Element “tag” does not allow “attribute” here.

Você sabe de algo?

Verifique os erros!!!

Bati o olho e já vi que essas tags não são fechadas:
<rtexpvalue>

Blz … já está rodando … no caso do primeiro erro era porque estou usando a versão 1.1 e a tag correta é <tagclass> e não <tag-class> (versão 1.2) ou <tagClass> como eu estava usando…

Além disso no atributo tinha o problema do fechamento das tags!

Bom… aproveitando que aqui só feras… vai mais uma … Como eu faço pra pegar a requisição dentro da Tag Handler Class? Tentei desta forma:

HttpServletRequest servletRequest = &#40;HttpServletRequest&#41; pageContext.getRequest&#40;&#41;;

Mas meu chute não funcionou … não da erro, mas também não funciona!

Valeu

Seu código está certo!!!

HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();

Faz um teste!!!

Passa o parametro nome=joao pela url e pega pelo req.getAttribute(“nome”)

Se não funcionar avisa!!!

Ou também dessa forma:

String nome = (String)pageContext.getAttribute(“nome”,PageContext.REQUEST_SCOPE);

Tem que funcionar!!!

Valeu dders!

Ta tudo rodando agora…

Suas informações me ajudaram bastante!

Até Mais,

Ótimo,

Qualquer problema é só postar que estamos ai!!!