Valor nulo para formulário servlet

2 respostas
V

Olá pessoal, estou tendo o seguinte problema, após criar uma página html e o servlet, rodo o programa que me informa valor nulo. Olhando detalhadamente o código, parece que o valor nulo ocorre por algum erro na “captura” do valor de um select na página html. Em outras aplicações o mesmo erro tem ocorrido quando uso radium… Já usei um código postado em outro tópico que força o servlet a receber o valor que pretendo e funcionou. Mas eu desejo fazer a seleção funcionar e aprender a resolver o erro. Estou enviando o código e antecipadamente agradeço aos que me responderem… Abraços a todos…

Página html…

Valor do produto com descontos
Informe o valor unitário do produto:


Indique a cor da etiqueta:
amarela laranja vermelha

Quantidade de produto a ser comprada:



Servlet…

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

String valorProduto = request.getParameter(“valorDoProduto”);

String corEtiqueta = request.getParameter(“corDaEtiqueta”);

String quantidadeProdutos = request.getParameter(“quantidadeDeProdutos”);

Float valor= Float.parseFloat(valorProduto);

Float quantidade= Float.parseFloat(quantidadeProdutos);

Float descontoQuantidade=null;

Float descontoEtiqueta=null;

Float resultado= null;

if (quantidade<=5){

descontoQuantidade=(float) (valor<em>0.1);

}

if (corEtiqueta==“amarela”){

descontoEtiqueta=(float) (valor</em>0.1);

}

else if(corEtiqueta==“laranja”){

descontoEtiqueta=(float) (valor<em>0.2);

}

else if(corEtiqueta==“vermelha”){

descontoEtiqueta=(float) (valor</em>0.5);

}

resultado= (float)(valor-descontoQuantidade-descontoEtiqueta);

response.setContentType(“text/html”);

PrintWriter out = response.getWriter();

out.println("");

out.println("");

out.println(“

Desconto Final

”);
out.println(“valor total da compra para com todos os discontos: R$”+resultado);
out.println("");
out.println("");
}

Mensagem de erro:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException

Descontos.doPost(Descontos.java:51)

javax.servlet.http.HttpServlet.service(HttpServlet.java:641)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.

2 Respostas

ssh

cara faz um teste, antes de comparar com amarelo/azul… teste se corDaEtiqueta é diferente de null.

A

verifica tuas variáveis e veja qual está retornando null

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String valorProduto = request.getParameter("valorDoProduto");
String corEtiqueta = request.getParameter("corDaEtiqueta");
String quantidadeProdutos = request.getParameter("quantidadeDeProdutos");

/**** Teste as variáveis e veja o que está sendo armazenado *******/

System.out.println(valorProduto);
System.out.println(corEtiqueta);
System.out.println(quantidadeProdutos);

//se você obteve seus valores aí você prossegue
 
/*****************************************/


Float valor= Float.parseFloat(valorProduto);
Float quantidade= Float.parseFloat(quantidadeProdutos);
Float descontoQuantidade=null;
Float descontoEtiqueta=null;
Float resultado= null;
if (quantidade&lt;=5){
descontoQuantidade=(float) (valor*0.1);
}
if (corEtiqueta=="amarela"){
descontoEtiqueta=(float) (valor*0.1);
}
else if(corEtiqueta=="laranja"){
descontoEtiqueta=(float) (valor*0.2);
}
else if(corEtiqueta=="vermelha"){
descontoEtiqueta=(float) (valor*0.5);
}
resultado= (float)(valor-descontoQuantidade-descontoEtiqueta);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("&lt;html&gt;");
out.println("&lt;body&gt;");
out.println("&lt;h1&gt;Desconto Final&lt;/h1&gt;");
out.println("valor total da compra para com todos os discontos: R$"+resultado);
out.println("&lt;/body&gt;");
out.println("&lt;/html&gt;");
}
Criado 16 de abril de 2012
Ultima resposta 17 de abr. de 2012
Respostas 2
Participantes 3