Duvida sobre uma tag

12 respostas
F

Senhores,

Empaquei em um exemplo relativamente simples de uma apostila jsp que baixei da web. O programinha em questao calcula a media de um aluno baseado em tres notas e diz se o aluno foi ou nao aprovado. O problema eh que o programa insiste que estou digitando valores invalidos, quando na verdade estou digitando numeros inteiros. Na minha opniao esta ocorrendo problema com o uso a seguinte tag <jsp:setProperty name=“umAluno” property="*"/>. No caso, a tag pega todos os parametros de request (as tres notas digitadas) e passa para instancia do JavaBean que calcula a media. Por favor, alguem poderia me dizer o que esta errado. Seguem abaixos os codigos do index, do .jsp que controla a logica da aplicaçao e do javaBean:

index.jsp

&lt;%@page contentType="text/html"%&gt;
&lt;%@page pageEncoding="UTF-8"%&gt;

&lt;html&gt;
&lt;head&gt;&lt;title&gt;Aplicação web - Exemplo 7&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
&lt;%@include file="cabecalho.html"%&gt;
&lt;br&gt;
&lt;form type=get action=calculaMedia.jsp&gt;
&lt;table border="1"&gt;
&lt;tr&gt;&lt;th&gt;Nota 1 &lt;/th&gt;&lt;td&gt;&lt;input type=text name=nota1&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Nota 2 &lt;/th&gt;&lt;td&gt;&lt;input type=text name=nota2&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Nota 3 &lt;/th&gt;&lt;td&gt;&lt;input type=text name=nota2&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;INPUT TYPE=submit name=submit value="Calcule a media"&gt;

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

calculaMedia.jsp

&lt;%@page contentType="text/html"%&gt;
&lt;%@page pageEncoding="UTF-8"%&gt;
&lt;%@page errorPage="erro.jsp"%&gt;

&lt;jsp&#58;useBean id="umAluno" class="rf.beans.AlunoBean" scope="request"/&gt;
&lt;jsp&#58;setProperty name="umAluno" property="*"/&gt;     
     
&lt;%!String situacao,cor;%&gt;     
&lt;%
  if &#40;umAluno.getMedia&#40;&#41; &gt;= 5.75f&#41;&#123;
     situacao = "aprovado.jsp"; 
     cor = "#99ff99";//verde
  &#125;
  else&#123;
     situacao = "reprovado.jsp";
     cor = "#ff6666";//vermelho
  &#125;
%&gt;

&lt;jsp&#58;forward page='&lt;%=situacao%&gt;'&gt;
&lt;jsp&#58;param name="cor" value='&lt;%=cor%&gt;'/&gt;
&lt;/jsp&#58;forward&gt;

AlunoBean.java

public class AlunoBean &#123;
    
    private float&#91;&#93; notas;
    private float media;
    
    /** Creates a new instance of AlunoBean */
    public AlunoBean&#40;&#41; &#123;
        
        notas = new float&#91;3&#93;;
        notas&#91;0&#93; = 0.0f;
        notas&#91;1&#93; = 0.0f;
        notas&#91;2&#93; = 0.0f;
        media = 0.0f;
        
    &#125;
    
    protected void calculeMedia&#40;&#41;&#123;
        
        media = &#40;notas&#91;0&#93; + notas&#91;1&#93; + notas&#91;2&#93;&#41;/3;
        
    &#125;
    
    public void setNota1&#40;float valor&#41;&#123;
        
        notas&#91;0&#93; = valor;
        this.calculeMedia&#40;&#41;;
        
    &#125;
    
    public void setNota2&#40;float valor&#41;&#123;
        
        notas&#91;1&#93; = valor;
        this.calculeMedia&#40;&#41;;
        
    &#125;
    
    public void setNota3&#40;float valor&#41;&#123;
        
        notas&#91;2&#93; = valor;
        this.calculeMedia&#40;&#41;;
        
    &#125;
    
    public float getNota&#40;int i&#41;&#123;
        
        return notas&#91;i-1&#93;;
        
    &#125;
    
    public float getMedia&#40;&#41;&#123;
        
        return media;
        
    &#125;
    
&#125;

Agradeço respostas,

Fischer

12 Respostas

R

[color=“darkblue”]Fala Fischer!!
Cara eu tava observando o seu código e reparei que vc chamou a função de pegar a média sem ter chamado a função que cálcula ela, ou seja, vc está comparando nada!!!
Se vc diz q está digitando inteiro mas está usando float então vc pode usar o seguinte…

nota1 = Integer.parseFloat&#40;nota1&#41;;

Certo??
Mas eu acredito que o problema seja pq vc não chamou a função q calcula a média!!!

Espero ter ajudado… :wink:

[]'s[/color]

F

Caro riqueneil,

O problema eh que eu ja usei o metodo parseFloat tanto no JavaBean quanto no calculeMedia.jsp. No calculeMedia.jsp o parseFloat funciona direitinho, mas nao no JavaBean. Como no caso eu estou usando o tag <jsp:setProperty name=“umAluno” property="*"> queria saber porque o JavaBean nao pega os valores. Quanto a funçao calculeMedia(), ela eh chamada toda vez que uma nota eh setada. O que me deixa mais puto eh que eu ja verifiquei mil vezes com o codigo da apostila e ta tudo igual. A apostila eh de autoria de um professor aqui da UFSC. Eu inclusive ja tive aulas com ele. O jeito eh mandar um e-mail pra ele, mas nao quero levar uma mijada do cara.

Mas valeu mesmo assim,

[]'s

Fischer

F

Caro riqueneil,

O problema eh que eu ja usei o metodo parseFloat tanto no JavaBean quanto no calculeMedia.jsp. No calculeMedia.jsp o parseFloat funciona direitinho, mas nao no JavaBean. Como no caso eu estou usando o tag <jsp:setProperty name=“umAluno” property="*"> queria saber porque o JavaBean nao pega os valores. Quanto a funçao calculeMedia(), ela eh chamada toda vez que uma nota eh setada. O que me deixa mais puto eh que eu ja verifiquei mil vezes com o codigo da apostila e ta tudo igual. A apostila eh de autoria de um professor aqui da UFSC. Eu inclusive ja tive aulas com ele. O jeito eh mandar um e-mail pra ele, mas nao quero levar uma mijada do cara.

Mas valeu mesmo assim,

[]'s

Fischer

R

[color=“darkblue”]Putz Fischer!!!
Agora q eu reparei uma coisa!!!
Vc não está usando o “this” para dizer q aquela variavel é da classe!!!
E ele está pegando uma variavel sem valor ou que não seja float!!!

Tente mudar isso!!!
Ah!!! Não fique com medo de tomar uma mijada de um professor não cara… isso só vai provar uma coisa… vc tem mais capacidade doq ele, pq vc quer aprender e ele é um mané por querer te privar disso… QQ coisa recorra ao portaljava, blz?? :wink:

[]'s[/color]

F

Não, infelizmente nada funciona aqui. Mas pode deixar que eu ja mandei um email pro professor em questão, só to esperando a mijada…

Valew :wink:

Fischer

D

acho q o problema eh q aqui:

&lt;jsp&#58;setProperty name="umAluno" property="*"&gt;

vc naum ta passando os valores. Sei lah naum entendo muito das tags jsp, mas creio q vc pode colocar um atributo value, +/- assim:

&lt;jsp&#58;setProperty name="umAluno" property="*" value="valor"/&gt;

Bom, naum sei se da pra vc instanciar um Bean inteiro de uma vez soh, como tentei fazer acima, de qq jeito poe:

&lt;jsp&#58;setProperty name="umAluno" property="nota1" value="9"&gt;
F

Obrigado pelas respostas pessoal, mas eu já descobri o erro: foi falta de atenção na hora de fechar um das tags de ação do .jsp que que mostrava as notas e a média. Só por causa de uma “/” dessas eu fiquei 2 dias quebrando a cabeça achando que era problema de passagem de parametros :oops: . Mas pelo menos deu pra sentir que o pessoal daqui é esforçado e ta sempre disposto a ajudar! Ah, e preparem-se que eu to fazendo um exemplo com banco de dados agora, hehe! :lol:

Valew mesmo!

Fischer

R

[color=“darkblue”]FERROU!!!
Se o cara com alguns beans já causou esse reboliço todo imagina trazendo a renca do banco de dados!!!
HUAHUAAHUAHUAHUAHAUAHUHAUHAUAHU…

Brincadeira!!! :wink:
Coloque mesmo cara, agente caí dentro de qq coisa!!!

[]'s[/color]

F

Huahua, nao sou tao prego assim nao cara. Eu ja programo java faz um tempinho. Ja fiz varios trabalhos de faculdade usando sockets, multithreading, controle de concorrencia, pipes, rmi, servlets, beans,CORBA e o meu trabalho de TCC vai ser encima do projeto de construçao de um framework baseado na tecnologia JAVA. Soh nao to acustumado com as açoes, diretivas e outras particularidades de jsp, mas pode deixar que eu chego la :grin: !

R

[color=“darkblue”]Tranquilo cara, mas ninguém falou q vc é prego… foi só uma brincadeira… :wink:
Eu tbm só vi java na facul!!! :frowning:
O máximo q eu trabalho com java é javascript, mas não é a mesma coisa :(, pq não se exige muito de javascript aqui!
Mas estou tentando migrar pra Java!:slight_smile:
Agora na parte de programação eu me garanto em muitas, meu ponto forte é em C e C++ pois tem coisas que vc tem q implementar, enqnt java já estão implementadas :).
Mas, se eu posso fazer o mais fácil pra q q eu quero o mais dificil não é??

[]'s e poste aí!!![/color]

F

Nao cara, nao me senti ofendido, apenas queria dizer que me enrrolei nas tags jsp pois eh algo totalmente novo para mim.

[]'s

Fischer

R

Ah!! hehehehehhe
Eu tava de brincadeira tbm cara!!!
Eu me embolo com as tags JSP, tanto que só uso classes e algumas instruções predefinidas…
Tenho q cair mais dentro dessa parada!!!
Um dia eu fico fera nisso… heheheh

[]'s[color=“darkblue”][/color]

Criado 10 de agosto de 2004
Ultima resposta 14 de ago. de 2004
Respostas 12
Participantes 3