Bean naum estah setando

1 resposta
Diana

fiz a seguinte aplicacao seguindo um exemplo:

bean:

package tst1.beans; 
public class AlunoBean{ 
   private String nome; 
   private float notas[]; 
   private float media; 
    
   public AlunoBean(){ 
      nome="nao informado"; 
      notas=new float[3]; 
      notas[0]=0.0f; 
      notas[1]=0.0f; 
      notas[2]=0.0f; 
   } 
   public void setNome(String _nome){ 
      nome=_nome; 
   } 
   public void setNota1(float nota){ 
      notas[0]=nota; 
      this.calcula(); 
   } 
   public void setNota2(float nota2){ 
      notas[1]=nota2; 
      this.calcula(); 
   } 
   public void setNota3(float nota3){ 
      notas[2]=nota3; 
      this.calcula(); 
   } 
   public void calcula(){ 
      media=(notas[0]+notas[1]+notas[2])/3; 
   } 
   public String getNome(){return nome;} 
   public float getNota(int i){return notas[i-1];} 
   public float getMedia(){return media;} 
   }

tenho a seguinte pagina para enviar os dados

<html> 
<head><title>Notas</title> 
</head> 
<body> 
<%@include file="cabecalho.html"%> 
<blockquote>Esta pagina envia os dados para um jsp instaciar o objeto aluno e com as notas utitlizar o metodo getMedia para saber a situacao do aluno</blockquote> 
<form type="get" action="valida.jsp"> 
Nome: <input type=text name=Nome><br> 
Nota1: <input type=text name=Nota1><br> 
Nota2: <input type=text name=Nota2><br> 
Nota3: <input type=text name=Nota3><br> 
<input type=submit value="calcular"> 
</form> 
</body> 
</html>

e os jsp:
mostraNota

<jsp:useBean id="umAluno" class="tst1.beans.AlunoBean" scope="request"/> 
<h3>Aluno: <%=umAluno.getNome()%></h3> 
<h3>Notas</h3> 
<table border=1> 
<% 
int i = 1; 
String nota; 
for (i=1;i<=3;i++){ 
    
%> 
<tr> 
<td>Nota<%=i%></td> 
<td><%=umAluno.getNota(i)%></td> 
</tr> 
<% 
} 
%> 
</table>

validar

<jsp:useBean id="umAluno" class="tst1.beans.AlunoBean" scope="request"/> 
<jsp:setProperty name="umAluno" property="*"/> 

<%!String situacao; 
    %> 
<% 

   if(umAluno.getMedia()>=5.75f){ 
      situacao="aprovado.jsp"; 
   }else{ 
         situacao="reprovado.jsp"; 
   } 
%> 
<jsp:forward page='<%=situacao%>'> 
</jsp:forward>

que vai para reprovado.jsp ou aprovado.jsp que sao praticamente iguais

<jsp:useBean id="umAluno" class="tst1.beans.AlunoBean" scope="request"/> 
<html> 
<head> 
<title>Aplicacao web - usando um objeto(Bean)</title> 
</head> 
<body> 
<%@include file="cabecalho.html"%> 
<h2>Aluno Reprovado</h2> 
<jsp:include page="mostarNotas.jsp"/> 
<p>Sua media, portanto, foi 
   <jsp:getProperty name="umAluno" property="media"/>.</p> 
</body> 
</html>

o que acontece eh que naum importa o valor que eu digite ele vai direto para reprovado…e o nome fica em branco e as notas idem…exatamente como esta no construtor do meu bean como se ele naum estivesse conseguindo setar…o que estah errado?

[]'s

1 Resposta

rodrigo_gomes

acho que seria legal que ao inves de chamar

this.calcula();
dentro de cada metodo set, fazer simplesmente
public void setNota1(float nota){
      notas[0]=nota;
         }
   public void setNota2(float nota2){
      notas[1]=nota2;
      
   }
   public void setNota3(float nota3){
      notas[2]=nota3;

e fazer seus respectivos gets e depois criar um metodo calculaMedia() que recebe essas notas como parametro e retona a media

Criado 17 de junho de 2004
Ultima resposta 17 de jun. de 2004
Respostas 1
Participantes 2