1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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?

  • Em sua entity Cliente, vc sobrescreveu os métodos equals() e hashCode() ?

    Romero Dias   13 de mar de 2015
  • Paulo, veja o que Romero falou. Se tiver feito isso, poste como está o seu "converterClient".

    Eduardo Fernandes   17 de mar de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsf richfaces java ou faça a sua própria pergunta.