Primefaces: mask para valores monetários

Colegas,

Estou usando o primefaces e estou com MUITA dificuldade para criar um input para valores monetários.
Baixei uma extensão do primefaces (xmlns:pe="http://primefaces.org/ui/extensions)
que me permite usar esse componente:

<pe:inputNumber id="teste" value="#{myBean.conta.valor}" 
     symbol="R$ " decimalSeparator="," thousandSeparator="." converter="bigDecimalConverter" />

Porém quando eu digito 135 no campo ele acrescenta ,00 e o valor fica R$ 135,00 ao invés de R$ 1,35
Pergunto: Vc pode me passar um exemplo de como fazer um input mask para valores? Qualquer sugestão é bem-vinda.
Obrigado,
Marques

Já utilizei assim também.

function mascara(o,f){ 
	v_obj=o 
	v_fun=f 
	setTimeout("execmascara()",1) 
} 

function execmascara(){ 
	v_obj.value=v_fun(v_obj.value) 
} 

function moeda(v){ 
	v=v.replace(/\D/g,""); // permite digitar apenas numero 
	v=v.replace(/(\d{1})(\d{15})$/,"$1.$2") // coloca ponto antes dos ultimos digitos 
	v=v.replace(/(\d{1})(\d{11})$/,"$1.$2") // coloca ponto antes dos ultimos 11 digitos 
	v=v.replace(/(\d{1})(\d{8})$/,"$1.$2") // coloca ponto antes dos ultimos 8 digitos 
	v=v.replace(/(\d{1})(\d{5})$/,"$1.$2") // coloca ponto antes dos ultimos 5 digitos 
	v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2") // coloca virgula antes dos ultimos 2 digitos 
	return v; 
}
<p:inputText .... onkeydown="mascara(this,moeda)" </p:inputText>

Funciona bem.

Coloca isso dentro do xhml dentro da tag inputText
<f:convertNumber pattern=“0.00”/>
Usei dessa forma no richfaces e funfa, acredito q funfe no prime, ainda não testei.

abraços

1 curtida

Eu uso essa extensao e nunca tive esse problema, acho que nao precisa por tanto isso de parametro.

<pe:inputNumber id="teste" value="#{myBean.conta.valor}"  symbol="R$ " /> 

so isso ja serve, assim que uso aqui e nunca tive esse problema.

aconselho o uso do JQuery.