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
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head><title>Aplicação web - Exemplo 7</title></head>
<body>
<%@include file="cabecalho.html"%>
<br>
<form type=get action=calculaMedia.jsp>
<table border="1">
<tr><th>Nota 1 </th><td><input type=text name=nota1></td></tr>
<tr><th>Nota 2 </th><td><input type=text name=nota2></td></tr>
<tr><th>Nota 3 </th><td><input type=text name=nota2></td></tr>
</table>
<br>
<INPUT TYPE=submit name=submit value="Calcule a media">
</form>
</body>
</html>
calculaMedia.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page errorPage="erro.jsp"%>
<jsp:useBean id="umAluno" class="rf.beans.AlunoBean" scope="request"/>
<jsp:setProperty name="umAluno" property="*"/>
<%!String situacao,cor;%>
<%
if (umAluno.getMedia() >= 5.75f){
situacao = "aprovado.jsp";
cor = "#99ff99";//verde
}
else{
situacao = "reprovado.jsp";
cor = "#ff6666";//vermelho
}
%>
<jsp:forward page='<%=situacao%>'>
<jsp:param name="cor" value='<%=cor%>'/>
</jsp:forward>
AlunoBean.java
public class AlunoBean {
private float[] notas;
private float media;
/** Creates a new instance of AlunoBean */
public AlunoBean() {
notas = new float[3];
notas[0] = 0.0f;
notas[1] = 0.0f;
notas[2] = 0.0f;
media = 0.0f;
}
protected void calculeMedia(){
media = (notas[0] + notas[1] + notas[2])/3;
}
public void setNota1(float valor){
notas[0] = valor;
this.calculeMedia();
}
public void setNota2(float valor){
notas[1] = valor;
this.calculeMedia();
}
public void setNota3(float valor){
notas[2] = valor;
this.calculeMedia();
}
public float getNota(int i){
return notas[i-1];
}
public float getMedia(){
return media;
}
}
Agradeço respostas,
Fischer

!
