Estou utilizando a seguinte estrutura JSP, Servlets e JavaBeans.
Estou tentando passar o Bean que utilizo na minha JSP para o Servlet (Que é a minha camada de Controle),
mas não estou conseguindo, o meu Bean está com as propriedades nulas.
estou usando o setProperty do Bean, e todos os meus campos da JSP estão com o mesmo nome do meu Bean.
Percebi que da primeira vez que ocorre o submit na tela, ele manda valores nulls para o servlet, mas da segunda vez que clico no botão de submit ele manda os valores que preenchi da primeira vez.
package modelo;
public class IndicFinanceiro {
private String indice;
private float variacao;
private float compra;
private float venda;
public IndicFinanceiro(){
}
public String getIndice(){
return indice;
}//fim getIndice
public float getVariacao(){
return variacao;
} // fim getVariacao
public float getCompra(){
return compra;
} // fim getCompra
public float getVenda(){
return venda;
} // fim getVenda
public void setIndice(String si){
indice = si;
} // fim setIndice
public void setVariacao(float fa){
variacao = fa;
}// fim setVariacao
public void setCompra(float fb){
compra = fb;
}// fim setCompra
public void setVenda(float fc){
venda = fc;
}// fim setVenda
} // Fim IndicFinanceiro
E por fim, os campos do meu formulario HTML estao com os mesmos nomes do Bean (indice, variacao, compra, venda)
Espero que tenha conseguido ajudar em algo.
<form name="formalu" method="POST" action="./ServletAluno" >
.
. aqui vai estar todos os meu campos e o botão de submit
.
</form>
Está ocorrendo o seguinte, ao clicar no botão ele dá o submit na tela, vai até o servlet e lá o meu Bean encontra-se com os valores null.
Bom, quando ele volta pra JSP ele atribui os valores do bean.
Ou seja, ele atribui o bean só depois que ele voltou do servlet.
Então, provavelmente é isso que está ocorrendo, talvez o meu Bean esteja no lugar errado ou então outra coisa.
<form name="formalu" method="POST" action="nome_deste_jsp.jsp?flag=ok" >
.
. aqui vai estar todos os meu campos e o botão de submit
.
</form>
Com isso, qdo vc efetuar o submit do formulario, a propria pagina sera “chamada”.
Resumindo: Depois de digitar os dados e dar submit, o proprio jsp sera chamado passando “flag=ok”. Entao este flag sera recuperado e se for “ok”, ou seja, tiver vindo a partir do submit, fara um “forward” para o seu servlet. No servlet, verifique se os dados do formulario chegaram corretamente. Se funcionar, descarte o parametro teste que foi passado para o servlet. Caso contrario, verifico se o parametro teste esta chegando no servlet com o valor “entrou”.
Vc estava fazendo um submit para outra página certo?
Ao fazer isso vc não volta para a página onde vc está setando a sessão…
os comandos rodam no servidor. ou seja, vc apenas seta a sessão na segunda vez que vc acessa a página!