JSF evento valueChangeListener em h:selectOneMenu ativa validações

Gente tenho um <h:selectOneMenu com evento valueChangeListener e quero executá-lo sem ativar os validadores da página. Coloquei o immediate=“true” mas de nada adiantou. O que posso fazer para solucionar isso.

Observação: não posso usar frameworks adicionais nem muito menos qualquer coisa que use ajax.

Na empresa anterior eu resolvi isso usando ajax4jsf, o problema eh que onde estou agora ajax não pode ser utilizado.

Ninguém aqui passou pela experiência de enfrentar essa bronca usando somente o que está na especificação?

Galera,

Só para ficar registrado e outros que passarem por isso poderem consultar. Essa foi a resposta do André Paes na enterprise-list (lista atrelada ao JEEBrasil) que resolveu meu problema:

O atributo immediate igual a true serve para disparar o valueChangeListener antes das validações dos outros campos (mas ele sempre valida o campo associado a valueChangeListener).

Se o método disparado pelo evento não fizer uma chamada para o FacesContext.getInstance().renderResponse(), as outras fases do faces serão executadas normalmente, por isso ele valida os outros campos.

Assim se resolve o problema do selectOne ativar as demais validações.

você poderia me dizer como seria o cenário disso tudo ae?

esse combobox é dinâmico? ele tem que abrir outra página? tem que preencher um dataTable quando for selecionar uma determina opção?

abraço

É só um selectOne que dispara um evento valueChangeListener e que faz algum processamento no servidor e modifica alguns componentes visuais (como o outputText por exemplo). Bem simples.

Acontece que os validadores de outros inputs JSF que deveriam ser ativados apenas pelo botão cadastrar estavam sendo ativados, mesmo usando immediate no selectOne.

Antes eu utilizava ajax4jsf para não ativar os validadores (pq o request se limitava somente ao selectOne) mas no projeto atual não posso usar ajax. E pra resolver isso bastava fazer o que descrevi acima.

Problemas novamente. O que ocorre agora é que a ação executada pelo selectOne tenta preencher um valor num inputText. Mas o valor não aparece no html renderizado ao final do ciclo. No entanto ele atualiza um outputText que teve o value setado também.

Ah, esse inputText tem validação.