inputText

Existe alguma forma de validar um componente inputText para não aceitar espaços sem nada escrito? Estou usando o required para obrigar digitar alguma informação em branco, mas se o usuário colocar um espaço e não digitar mais nada cadastra como se fosse um campo em branco…

Obrigado

para fazer essa validação utilize o metodo trim() da String

Mas para utilizar o trim() eu teria que usar na classe, ou tem como eu usar direto na pagina JSF? Se possível eu queria fazer essa validação na página ainda antes de enviar para a classe…

obrigado!

opa…

você poderia criar um javascript… ou então criar um validador customizado…

:okok:

funçao trim em javascript

function trim(tx) { s = toString(tx); while (s.substring(0,1) == ' ') { s = s.substring(1,s.length); } while (s.substring(s.length-1,s.length) == ' ') { s = s.substring(0,s.length-1); } return s; }

denis_arruda

Isso resolveria meu problema, mas teria que deixar scriptles na página, resolvi o problema com essa classe:

public class ValidadorEspaco implements Validator{
    
    public void validate(FacesContext context, UIComponent comp, Object object) throws ValidatorException {
        FacesMessage message = new FacesMessage();
        message.setSummary("Informação inválida");

        String valorCampo = object.toString();
        if (valorCampo.indexOf(" ") == 0) {
            throw new ValidatorException(message);
        }
    }
}

no faces-config.xml

   <validator>
      <validator-id>validadorEspaco</validator-id>
      <validator-class>com.pacotes.resources.ValidadorEspaco</validator-class>
   </validator>

e no inputText usei assim:

<f:validator validatorId="validadorEspaco"/>

Quando o primeiro caracter foi um espaço ele mostra a mensagem, será que o commons-validator da apache faz uma validação desse tipo? Como usar o commons-validator?