JSP e Servlets

4 respostas
I

Olá a todos!

Tenha um atributo Decimal (4,2) e desejo passar para servlet através do meu form, quando eu chamo ele pela servlet no método request.getParamameter(); ele dá um erro de String inválida pois não aceita o valor 1.5 e nem 1,5, como faço para pegar o valor na servlet?

Desde já muito obrigado!

4 Respostas

Cristiano_de_Barros

Olá,

Não entendi muito bem…
O erro está ocorrendo ao tentar armazenar em uma variável, o valor que veio da página?
Este atributo está vindo mesmo? Você está utilizando BigDecimal?
O java não possui uma classe chamada Decimal…
Se estiver utilizando o BigDecimal, para fazer o que eu acho que você quer, deve utilizar o construtor que recebe uma String como parâmetro, como no exemplo abaixo:

new BigDecimal("4.2") // Trocar esta String pelo valor passado na requisição

Espero ter ajudado!
Abraço

davidbuzatto

ivan cox:
Olá a todos!

Tenha um atributo Decimal (4,2) e desejo passar para servlet através do meu form, quando eu chamo ele pela servlet no método request.getParamameter(); ele dá um erro de String inválida pois não aceita o valor 1.5 e nem 1,5, como faço para pegar o valor na servlet?

Desde já muito obrigado!

Os valores dos parâmetros de requisição vem como String e você precisa converte-los.
Você pode empregar dois níveis de validação, um no seu formulário (via JavaScript) e um no seu Servlet.
No formulário você fixa que só pode enviar números com vírgula por exemplo, e no servlet vc troca a vírgula por ponto.
Ou então criar um método que faça a conversão independente se há vírgula ou ponto.

public static double toDecimal( String numero ) throws NumberFormatException { if ( numero.contains( "," ) ) numero = numero.replace( ",", "." ); return Double.parseDouble( numero ); }

Note que o método ainda pode gerar uma exceção (caso não seja mesmo um número).

I

numero = numero.replace( “,”, “.” );

E se no caso eu tiver um valor tipo: 1.289.245,00 ele não vai ficar com todos os pontos e irá dar erro.

Jair_Rillo_Junior

Ivan,

O David deu apenas um exemplo, mostrou o caminho do que você pode fazer.
Agora você pode encaixar o exemplo em cima do seu requisitos.

A classe Wrapper String tem vários métodos para manipular String, assim como Expression Language.

Criado 25 de setembro de 2009
Ultima resposta 28 de out. de 2009
Respostas 4
Participantes 4