Componente JSF - aceitar apenas números

2 respostas
G

Oi pessoal, tudo bom ?
Estou precisando de um componente input JSF que aceite só números (inteiros) como entrada.
Não estou querendo usar os scripts de máscara do jQuery … portanto, se alguém tiver alguma solução que não seja essa, vou ficar muito grato !

2 Respostas

A

gustavoc:
Oi pessoal, tudo bom ?
Estou precisando de um componente input JSF que aceite só números (inteiros) como entrada.
Não estou querendo usar os scripts de máscara do jQuery … portanto, se alguém tiver alguma solução que não seja essa, vou ficar muito grato !

Crie um validador!

[]´s

J

Acho que você vai ter que criar uma classe que implemente a interface Validator. Essa classe vai implementar o método validate e dentro dele você vai implementar o tipo de validação que você quer fazer, nesse caso aceitar apenas números inteiros.
Por exemplo:

package teste.jsf;

public class MyValidatorClass implements Validator{

    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
       
        //implementação da validação a ser feita

    }
}

Feito isso, você deve informar ao JSF o validator que você acaba de criar para que ele seja reconhecido, acrescentando as tags abaixo no arquivo faces-config.xml:

<validator>
        <validator-id>MyValidatorClass</validator-id>
        <validator-class>teste.jsf.MyValidatorClass</validator-class>
</validator>

Depois basta chamar na página, assim:

<h:form>
    Número:
    <h:inputText required="true" size="30">
           <f:validator validatorId="MyValidatorClass"/>
    </h:inputText>
</h:form>

Espero que ajude!

Criado 29 de janeiro de 2010
Ultima resposta 29 de jan. de 2010
Respostas 2
Participantes 3