JSF - Forçar a validação, mesmo que o usuário não tenha digitado nada

2 respostas
G

Preciso obrigatoriamente passar pela validação criada por mim. E não posso usar required porque ele lança o erro antes de chegar no meu validador.

Eu preciso fazer isso, porque eu tenho cadastrado no banco quais campos são requeridos e quais não são, mas não consigo validar, porque pelo fato do campo não ser requerido, quando não estiver preenchido, não passa pelo validator que eu criei.

Alguém tem alguma idéia?

2 Respostas

L

Vc criou seu próprio validator para o JSF ou quer fazer a validação em um método comum de negócio?
Se for a segunda opção basta vc fazer a chamada do método de validação a partir do método que é disparado por uma ação na sua página JSF.

gomesrod

Já que os campos obrigatórios ou não só são conhecidos em tempo de execução, você pode fazer o seguinte: retire a flag “required” dos campos, e no seu validador verifique se o valor está presente. Se estiver em branco e for obrigatório, lance um ValidationException que “simula” e mensagem de erro de campo obrigatório. (“O valor deve ser informado”, ou algo do gênero).

Outro jeito (esse eu nunca testei, vc pode tentar) é colocar no atributo “required” uma expressão que te de essa informação em tempo de execução. Exemplo:

<inputText id="nome" .... required="#{validationBean.nomeRequired}" > <inputText id="idade" .... required="#{validationBean.idadeRequired}" >
Na classe validationBean (um faces-managed-bean) você cria os métodos isNomeRequired e isIdadeRequired.

Criado 29 de maio de 2007
Ultima resposta 29 de mai. de 2007
Respostas 2
Participantes 3