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:<input type="text" name="media"/> <br />
<input type="submit" name="Enviar" value="Enviar"/>
</form>
view que vai exibir a situação
<%@ taglib prefix="tagMedia" uri="valor" %>
<tagMedia:media>${situacao}</tagMedia:media>