Validar numero em JSF

Olá pessoal, vim expor mais uma dúvida minha, quando trabalhamos com valores numericos em Java o separador decimal é o ponto “.”, entretanto, na minha aplicação preciso fazer uso de uma virgula “,” como separador decima.
Há algum mecanismo que o JSF disponibiliza par que eu cumpra a minha tarefa ou tudo o que eu posso fazer é customizar um conversor para essa tarefa?
Outra dúvida é saber como eu faria nesses campos para barrar a inserção de qualquer dado que não seja um número ou uma vírgula.
Desde já agradeço a atenção

Olá pessoal,
consegui resolver parte do meu aperreio.

Eu fiz o seguinte, utilizei um convertedor padrão JSF e setei o padão da forma que eu desejava.

Eu usei a seguinte tag

<f:convertNumber pattern="##0,00" maxFractionDigits=“2”/>

Ainda preciso saber como impedir a digitação de qualquer coisa que não seja um número ou uma virgula.

Bom, você só conseguirá isto com javascript.

Este exemplo pode lhe ajudar:

[code]function FormataValor(campo, form) {
form[campo].value = FiltraCampo(campo, form);
vr = form[campo].value;
tam = vr.length;

if &#40; tam &lt;= 2 &#41; 
	form&#91;campo&#93;.value = vr ; 
if &#40; &#40;tam &gt; 2&#41; &amp;&amp; &#40;tam &lt;= 5&#41; &#41; 
	form&#91;campo&#93;.value = vr.substr&#40; 0, tam - 2 &#41; + ',' + vr.substr&#40; tam - 2, tam &#41; ; 
if &#40; &#40;tam &gt;= 6&#41; &amp;&amp; &#40;tam &lt;= 8&#41; &#41; 
	form&#91;campo&#93;.value = vr.substr&#40; 0, tam - 5 &#41; + '.' + vr.substr&#40; tam - 5, 3 &#41; + ',' + vr.substr&#40; tam - 2, tam &#41; ; 
if &#40; &#40;tam &gt;= 9&#41; &amp;&amp; &#40;tam &lt;= 11&#41; &#41; 
	form&#91;campo&#93;.value = vr.substr&#40; 0, tam - 8 &#41; + '.' + vr.substr&#40; tam - 8, 3 &#41; + '.' + vr.substr&#40; tam - 5, 3 &#41; + ',' + vr.substr&#40; tam - 2, tam &#41; ; 
if &#40; &#40;tam &gt;= 12&#41; &amp;&amp; &#40;tam &lt;= 14&#41; &#41; 
	form&#91;campo&#93;.value = vr.substr&#40; 0, tam - 11 &#41; + '.' + vr.substr&#40; tam - 11, 3 &#41; + '.' + vr.substr&#40; tam - 8, 3 &#41; + '.' + vr.substr&#40; tam - 5, 3 &#41; + ',' + vr.substr&#40; tam - 2, tam &#41; ; 
if &#40; &#40;tam &gt;= 15&#41; &amp;&amp; &#40;tam &lt;= 17&#41; &#41;
	form&#91;campo&#93;.value = vr.substr&#40; 0, tam - 14 &#41; + '.' + vr.substr&#40; tam - 14, 3 &#41; + '.' + vr.substr&#40; tam - 11, 3 &#41; + '.' + vr.substr&#40; tam - 8, 3 &#41; + '.' + vr.substr&#40; tam - 5, 3 &#41; + ',' + vr.substr&#40; tam - 2, tam &#41; ;

}

function FiltraCampo(campo, form){
var s = "";
var cp = "";
vr = form[campo].value;
tam = vr.length;
for (i = 0; i < tam ; i++) {
if (vr.substring(i,i + 1) != "/" && vr.substring(i,i + 1) != "." && vr.substring(i,i + 1) != "," ){
s = s + vr.substring(i,i + 1);}
}
form[campo].value = s;
return cp = form[campo].value
}[/code]

:okok:

Valeu, eu queria mesmo era me livrar do javascript de uma vez por todas, mas se num tem jeito :frowning:

Cara, mas nao tem nada que limita caracteres, sem que utilizemos o javascript ?

Exemplo, gostaria que certo campo “inputText” recebesse somente os caracteres ‘a’, ‘b’ e ‘c’.

[a-c] ou [A-C]

:stuck_out_tongue: