Problema com conversão de valores Servlets

2 respostas
Thiago_Lima1011

Estou fazendo para Java Web um cadastro de Alunos, porém está com erro de conversão de valores.

Todos os valores são double para peso e altura

Segue o arquivo servlet:
package br.com.escolamaxima.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Date;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;
import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import br.com.escolamaxima.modelo.Aluno;
import br.com.excolamaxima.dao.AlunoDao;

@WebServlet("/cadastraAluno")
public class CadastraAlunoServlet extends HttpServlet {

@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

	PrintWriter out = res.getWriter();
	String nome = req.getParameter("nome");
	String profissao = req.getParameter("profissao");
	Calendar nascimento = null;
	char sexo = req.getParameter("sexo").charAt(0);
	Double peso = null;
	Double altura = null;
	String nacionalidade = req.getParameter("nacionalidade");
	Integer cursopreferido = Integer.parseInt(req.getParameter("cursopreferido"));
	try {
		peso = new Double(req.getParameter("peso"));
		altura = new Double(req.getParameter("altura"));
		Date date = (Date) new SimpleDateFormat("dd/MM/yyyy").parse(req.getParameter("nascimento"));
		nascimento = Calendar.getInstance();
		nascimento.setTime(date);
	} catch (RuntimeException e) {
		out.println("Erro de conversão de valor! (Não numérico) no Peso");
		out.println("Erro de conversão de valor! (Não numérico) na Altura");
		return;
	} catch (ParseException ex) {
		out.println("Erro de conversão de data! use (DD/MM/YYYY)");
		return;
	} // Instanciação do Aluno
	Aluno aluno = new Aluno(nome, profissao, nascimento, sexo, peso, altura, nacionalidade, cursopreferido);
	// Gravar no BD com o DAO
	try {
		new AlunoDao().adiciona(aluno);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
//	new ImovelDao().adiciona(imovel); 
	// Resposta para o cliente
	out.println("<html><body><h3>");
	out.println("Aluno " + aluno.getNome() + " cadastrado com sucesso!");
	out.println("</h3></body></html>");
}

}

E o arquivo jsp

<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>

...Escola Máxima...

Cadastro de alunos


Nome:
Profissao:
Nascimento:
Sexo: Masculino Feminino
Peso:
Altura:
Nascionalidade:
Curso Preferido:


Mensagem de erro no retorno:
Erro de conversão de valor! (Não numérico) no Peso
Erro de conversão de valor! (Não numérico) na Altura

2 Respostas

Mike

Você esta colocando alguma virgula no peso ou na altura?

Se sim, vai dar erro mesmo e a solução é tratar ou trocar para ponto

Thiago_Lima1011

Coloque até valor inteiro. Porém nesses campos possuem valores do tipo double.
Tanto assim: 1,40 ou 1.40 para altura

Peso tentei com vírgula ou ponto

Criado 21 de setembro de 2018
Ultima resposta 22 de set. de 2018
Respostas 2
Participantes 2