1
resposta

Validação de dados campo ISBN

Bom dia Pessoal,

No meu projeto a validação do inputText do isbn ocorre somente se o campo estiver preenchido. se o campo estiver vazio o método comecaComDigitoUm não é chamado. Já nas videos aulas o validador comecaComDigitoUm() é executado mesmo com o campo vazio. Alguém saberia o porque ?

    public void comecaComDigitoUm(FacesContext fc, UIComponent component, Object value) throws ValidatorException {
            String valor = value.toString();
            if (!valor.startsWith("1")) {
                throw new ValidatorException(new FacesMessage("Deveria começar com 1"));
            }
        }
<h:inputText id="isbn" value="#{livroBean.livro.isbn}" validator="#{livroBean.comecaComDigitoUm}"  >
1 resposta

Por default, o JSF não valida campos em branco. Você precisa especificar esse comportamento por configuração. Adicione o seguinte config param no seu web.xml:

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

Ou você pode definir required = "true" na entrada ou na tag <f: validateRequired />

Abraço!