Versão atual:

Ajuda com validator do JSF

Pessoal, criei um validador no JSF:

@FacesValidator("clientUserValidator")
public class ClientUserValidator implements Validator{

    @Override
    public void validate(FacesContext arg0, UIComponent arg1, Object arg2) {
        System.out.println("dae");
        Client client = (Client) arg2;
        User user = ViewController.getViewControllerInstance().getUser();
        if (!user.getAccountWrite() && client == null) {
            throw new ValidatorException(JSFHelper.sendFacesMessage("Atríbua um cliente ao relatório.", FacesMessage.SEVERITY_WARN));
        }
    }
}

e estou usando ele num:

h:SelectOneMenu

                    <h:panelGrid columns="6">

                        <h:outputText value="Cliente: " />
                        <progic:spacer width="3px" />
                        <h:selectOneMenu value="#{reportConfMB.client}"
                                         styleClass="form-control" 
                                         converter="converterClient"
                                         id="cmbClient">
                            <f:validator validatorId="clientUserValidator" />             
                            <f:selectItem itemLabel="Indiferente" itemValue="#{null}" />
                            <f:selectItems value="#{reportConfMB.listClient}" 
                                           var="cliente"
                                           itemLabel="#{cliente.name}" 
                                           itemValue="#{cliente}" />
                        </h:selectOneMenu>
                        <h:message for="cmbClient" style="color: red;" />

                    </h:panelGrid>

Eu até achei que estava certo, porém, se eu selecione algum cliente da lista ele funciona, caso eu escolha o indiferente ele não chama o validator. Alguém tem alguma dica?

Versão(1):

Ver a versão formatada

Ajuda com validator do JSF

Comentário

new question