Na minha pagina, tenho um input para informar peso de produto:
E com convertNumber, tento formatar:
Neste caso, quando digito 2,345, ele captura correto.
Mas quando digito 2.345, ele pega o valor de 2345,000.
Preciso que tanto virgula quanto ponto ele formate correto, ou algo em JSF para converter virgula para ponto já no componente, pois esse valor já chega errado no meu Bean.
O problema é que o projeto que estou trabalhando, ele esta com o primefaces 2.2 RC1, bem antigo. E o Primefaces mais atual, não mantém compatibilidade, sendo assim, não posso atualizar e tambem não consigo usar o extension, pois depende do mais atual.
Mesmo assim, o extension é uma otima dica para quem tiver o mesmo problema e estiver na versão current do prime.
O inputMask até que resolveria, mas aparece outro problema:
Neste caso, se a pessoa quiser o valor 2.658 ela teria que digitar 02.658, ou seja, tem que respeitar a quantidade de digitos antes do ponto.
Pode ter casos que será digitado 1 ou 2 digitos à esquerda, e operacionalmente fica inviavel ter que digitar o 0 para preencher.
Não cheguei a trabalhar com o inputmask, mas se tiver alguma solução referente a este problema, posso validar aqui.
Desse modo que voce indicou, quando entra no input ele fica com a mascara 00.___, sendo assim, ao digitar ele preencher somente os decimais.
Se eu apagar o 00 e digitar, volta na mesma situacao de antes.
Utilize a 1ª forma apresentada no início desse tópico, porém insira o seguinte parâmetro em seu f:convertNumber: locale=“pt_BR”.
Sei que faz tempo que essa necessidade surgiu, mas para quem ainda tem dúvida, aí está uma opção de validação de números decimais.
O parâmetro locale configurado com o padrão “pt_BR” faz com que o “.”(ponto) seja utilizado como separador de milhar e a “,” seja utilizada como separador de casas decimais.
Caso essa configuração não seja inserida, a configuração a ser utilizada será a do idioma utilizado em seu sistema operacional.
Nem lembrava mais desse tópico, hehehe, apesar de a dúvida não ser minha e nunca ter tido este problema do amigo que criou este topico, eu não conhecia esse parâmetro, vlw xD
Não postei a solução antes por não achar adequada.
Assim que tiver disponibilidade, farei com teste com o pt_Br.
Mas quem tiver o mesmo problema, indico testar com o pt_br primeiro, caso não funcione, utilize o modo que apliquei.