Bom dia galera,tenho um campo monetário no JSF com máscara e o problema só acontece quando boto um valor ex:1.000,00
Esse é o trecho de codigo:
<h:inputText value="#{vendaController.formaPagto.valor}">
<rich:jQuery selector="#val"
query="maskMoney({decimal: '.', thousands: '.',symbol: 'R$',precision:2,showSymbol:false})" timing="onload" />
</h:inputText>
Essa é a mensagem de erro:
Idéias?
Tenta o convertNumber:
<h:inputText value="#{vendaController.formaPagto.valor}">
<rich:jQuery selector="#val"
query="maskMoney({decimal: '.', thousands: '.',symbol: 'R$',precision:2,showSymbol:false})" timing="onload" />
<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
</h:inputText>
Agora a exceção é outra:
value="#{vendaController.formaPagto.valor}": java.lang.IllegalArgumentException: argument type mismatch
Acho que sua função está inválida, você está setando o separador decimais como “.” e o de milhares como “.” também:
decimal: '.', thousands: '.'
O correto seria:
decimal: ',', thousands: '.'
Mesmo erro.
Achei esse link http://lucamolteni.wordpress.com/2010/07/23/using-bigdecimals-in-jsf/ onde o autor afirma que o f:convertNumber não rola pra BigDecimal,vou tentar escrever meu próprio converter e atualizo aqui.
Cara sempre uso convertNumber no meus projetos. Acho que apenas as versões mais antigas do JSF talvez não suportem isso.
Sim, utilizo com BigDecimal
Coloquei o converter e agora recebo a seguinte mensagem:
'1.669.00' must be a signed decimal number.
Converter:
<h:outputText value="#{row.valor}" >
<f:convertNumber minFractionDigits="2" maxFractionDigits="2" type = "number" />
</h:outputText>