Tenho uma página JSF que faz a validação de um campo que não pode receber 0, caso o usuário digite 0 e clique em salvar, na controller faz a validação e retorna que o valor deve ser maior que 0, MAS O USUÁRIO, AO ALTERAR O VALOR PARA 1 POR EXEMPLO, E TENTAR SALVAR, O BOTÃO SALVAR JÁ NÃO REALIZA A GRAVAÇÃO, sem retornar nenhuma mensagem, a impressão é que quebra a página, entretanto, os botões de Voltar por exemplo, funcionam.
Consegui resolver esse problema colocando no botão Salvar um process="@this", entretanto, fazer isso, fez com que as validações de campo obrigatório não fosse mais realizada, se eu deixar campo em branco, não salva, nem diz os outros campos são de preenchimento obrigatório.
O process como o próprio nome diz, ele vai processar algo quando uma requisição for feita, no seu caso você disse que o botão vai processar apenas ele (@this), assim ignorando os outros campos.
Se os outros campos vão ser ignorados, os valores que estão nos componentes não vão para os respectivos atributos do bean
Consegui resolver o problema!
Colocando o id do form no process, infelizmente não funcionou, tive que colocar um validator no campo em que fazia a validação do 0.
No campo que precisava da validação no JSF:
<f:validator validatorId=“validadorValorMaiorZero”></f:validator>
Onde esse validadorValorMaiorZero é uma “util” do sistema, que em Java faz a validação e retorna na tela a mensagem caso seja menor ou igual a zero o valor informado no campo.