Jsf campo obrigatorio

pessoal

to usando jsf 1.2 (richfaces) e estou com um problema, coloquei varios campos como obrigatórios (required = true).

se por engano eu abro a tela de cadastro, e depois quero ir para outra tela…clicando num link do menu…

ele aparece erro falando que o campo eh obrigatório…

e eu nao quero que isso aconteca…a obrigatoriedade deve existir somente se clicar no botao gravar… se eu clicar no menu, nao deve me exigir nada disso…como resolver isso?

Olá, para contarnar esse problema o JSF oferece o atributo immediate=true, que pula a fase de validação.
Para entender melhor leia este tutorial:

Valeu

nao deu certo nao…

coloquei o immediate no botao e continua fazendo essa validacao

Eu já tive alguns destes problemas. Acabei optando em retirar o “required = true” e fiz uma validação para fazer as checagens de campos obrigatórios.

beto eu até concordo que existe outras maneiras de fazer validação de campo obrigatório, mas eu queria usar pelo proprio jsf já que ele fornece esse recurso.

Sempre fiz validação no código mesmo, e não na view, mas se tem no jsf…provavelmente deveria funcionar

Sim, concordo, mais em alguns casos a validação do JSF causa estes transtornos, e como muitas das vezes é necessário termos as coisas padronizadas, optei em sempre ter uma regra para fazer as validações.

Mais concordo com você, deveria funcionar.

o link tah dentro do form com os campos required?? coloca o codigo da tela com esse problema…

Bom, a propriedade required=true nos links do menu deveriam funcionar.
Já que não funcionam, você tem outras 2 soluções:

Deixar o menu em um form, e a tela em outro form.

Ou implementar o subform, do tomahawk. Com a tela inteira dentro do mesmo form, faça um subform que contenha apenas os campos de cadastro e o botão gravar.

http://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc/t_subform.html

Agora que vi que você colocou o immediate no botão.

Você eve colocá-lo nos links do menu.