[Resolvido] Problema ao atribuir um valor a um atributo interno ao corpo de uma SimpleTag!

Pessoal,
tenho que montar uma SimpleTag com corpo. A tag deve conter um atributo chamado valor. Caso o valor seja maior ou igual a 7, o valor do atributo interno ao corpo da tag deve ser preenchido, pelo doTag(), com o valor ?APROVADO?, caso contrário, com o valor ?REPROVADO?.

O problema é que qualquer valor que eu digite, sempre é exibido REPROVADO. Sempre tá considerando a variável como nula. EU já tentei colocar uma gambiarra dentro do if, antes de setar o atributo, atribuindo valor = 7, mas sempre exibe REPROVADO.

Abaixo os códigos

SimpleTag

public class ValorTag extends SimpleTagSupport {

	
	private double valor;
	
	public void doTag() throws JspException, IOException {

		if (valor >= 7 ) {
			String situacao = "APROVADO";
			getJspContext().setAttribute("situacao", situacao);
			getJspBody().invoke(null);
		}
		else {
			String situacao = "REPROVADO";
			getJspContext().setAttribute("situacao", situacao);
			getJspBody().invoke(null);
		}

	}

arquivo TLD

<taglib>
	<tlib-version>1.2</tlib-version>
	<uri>valor</uri>
	<tag>
		<name>media</name>
		<tag-class>simpleTag.ValorTag</tag-class>
		<body-content>scriptless</body-content>
	</tag>
</taglib>

view que vai receber a média

<form action="exibe.jsp">
Média:&lt;input type="text" name="media"/&gt; <br />

&lt;input type="submit" name="Enviar" value="Enviar"/&gt;
&lt;/form&gt;

view que vai exibir a situação

&lt;%@ taglib prefix="tagMedia" uri="valor" %&gt;

&lt;tagMedia:media&gt;${situacao}&lt;/tagMedia:media&gt;

Ainda não resolvi o problema, mas corrigi alguns erros no código. Na classe Java da tag, como foi definido um atributo, tem que ter pelo menos o método set. E como a tag tem esse atributo, tinha faltado eu colocar no TLD.

O problema é que na view pra exibir a situação, não é reconhecido o atributo valor (Attribute valor invalid for tag media according to TLD) mesmo eu tendo declarado no TLD

&lt;tagMedia:media valor="10"&gt;${situacao}&lt;/tagMedia:media&gt;

Seguem os códigos corrigidos

classe Java

package simpleTag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class ValorTag extends SimpleTagSupport {

	
	private double valor;
	
	public void setValor(double valor) {
		this.valor = valor;
	}
	
	public void doTag() throws JspException, IOException {

		if (valor &gt;= 7 ) {
			String situacao = &quot;APROVADO&quot;;
			getJspContext().setAttribute(&quot;situacao&quot;, situacao);
			getJspBody().invoke(null);
		}
		else {
			String situacao = &quot;REPROVADO&quot;;
			getJspContext().setAttribute(&quot;situacao&quot;, situacao);
			getJspBody().invoke(null);
		}

	}

}

arquivo TLD

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;taglib&gt;
	&lt;tlib-version&gt;1.2&lt;/tlib-version&gt;
	&lt;uri&gt;valor&lt;/uri&gt;
	&lt;tag&gt;
		&lt;name&gt;media&lt;/name&gt;
		&lt;tag-class&gt;simpleTag.ValorTag&lt;/tag-class&gt;
		&lt;body-content&gt;scriptless&lt;/body-content&gt;
	&lt;/tag&gt;
	&lt;attribute&gt;
	    &lt;name&gt;valor&lt;/name&gt;
	    &lt;required&gt;true&lt;/required&gt;
	    &lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
	&lt;/attribute&gt;
&lt;/taglib&gt;

view pra exibir a situação

&lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%&gt;
&lt;%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %&gt;
&lt;%@ taglib prefix="tagMedia" uri="valor" %&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
&lt;title&gt;Dados&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;tagMedia:media valor="10"&gt;${situacao}&lt;/tagMedia:media&gt;

&lt;/body&gt;
&lt;/html&gt;

O arquivo TLD estava com a tag <attribute> fora da <tag></tag>

Agora tá funcionando. Nem precisa do arquivo index, é só executar diretamente pelo exibe.jsp

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
	version="2.0"&gt;

	&lt;tlib-version&gt;1.2&lt;/tlib-version&gt;
	&lt;uri&gt;valor&lt;/uri&gt;
	&lt;tag&gt;
		&lt;name&gt;media&lt;/name&gt;
		&lt;tag-class&gt;simpleTag.ValorTag&lt;/tag-class&gt;
		&lt;body-content&gt;scriptless&lt;/body-content&gt;
	&lt;attribute&gt;
	    &lt;name&gt;valor&lt;/name&gt;
	    &lt;required&gt;true&lt;/required&gt;
	    &lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
	&lt;/attribute&gt;
	&lt;/tag&gt;
&lt;/taglib&gt;

Eu precisava de ajuda enquanto a isso, meu código esta semelhante ao seu. mais sempre com a mensagem de erro:
Cannot find a setter method for the attribute entidade of the tag handler taglibs.MenuLateralTag
Compilar ate compila. mais rodando da erro.
Se alguém puder me ajudar, agradeço…