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?
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:
newBigDecimal("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
ivan_cox
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.