JSF - immediate

Bom dia pessoal.
Estou com o seguinte problema:
Tenho um botão, no qual tenho que ir para outra pagina, porem preciso ignorar as validações dos componentes, mas devo salvar o conteudo dos componentes nas propriedades do managed bean.
Quando uso immediate=“true”, ele não valida (ok), mas quando volto ele perde as digitações parciais do formulario.
Quando uso immediate=“false”, ele não deixa avançar porque exitem campos required=“true” que ainda não foram preenchidos.
Como posso controlar o ciclo de vida do JSF com esta precisão ?

como está o seu “beanGerenciado”? se estiver de request ja era mesmo…mas se estiver de sessao…procura no teu codigo ai que deve ter algum lugar que vc deve estar limpando seu bean na sua action…

Já conferi, o MB esta session mesmo.
Quanto ao codigo, não estou limpando pois os campos que eu colocava via sets no MB (como expemlo a data do dia que eu coloco quando carrega a pagina) estes permanecem.
Resumindo: quando uso set nos atributos, posso ir para outras paginas e voltar que a sessao mantem os valores, mas percebo que nao esta salvando os valores que foram parcialmente digitados nos inputText (so salva quando usa immediate=“false”).

hummmmmmmmmm…saquei…vc digita, mas nao chega a dar o set…nesse caso eu tb nao sei…fico no aguardo por uma reposta…tenho uns e-books de JSF em ksa…mas nao sei se tem a resposta…vou olhar…mas mesmo assim fico no aguardo.

Estou com o msm problema. Alguém por favor ajude!!!

oq vc precisa fzer é salvar o estado dos componetes …

http://www.ibm.com/developerworks/java/library/j-jsf4/

às vezes eu tenho esse problema por falta de usar a tag “value”. Alguns componente eu usava a apenas a tag “binding”. Talvez possa ser isso.

[]'s

pesquise sobre a4j:region ou ajaxSingle para resolver alguns problemas de submit.

Vlw porém ainda nem faço idéia de como resolver o problema!!!

Poderiam me especificar mais, sou novato na área e não estou entendendo bem…Vlw…

Esse é meu jsp…

<h:outputLabel value="Cnae: "/> <h:outputText value="#{juridicaBean.juridica.cnae.numero}"/> <h:commandButton value="Pesquisar Cnae" action="pesquisaCnae" immediate="true" />

Quando eu mando pesquisar vai até de boa
Mais quando eu volto os campos que eu já tinha preenchido simplismente apagam…
Qualquer dica vale…Valeu…Galera!!!

Se não for impactar, usa o tomahawk para ajudr nisso.

Ele tem uma tag chamada saveState!

Funciona muito bem…

Vlw pela idéia felipe mais ñ é oq eu estou procurando…
Vc num sabe uma outra forma usando o componente do RichFaces…Eu ñ quero ficar misturando os componentes!!!
ta complicado, já to perdendo muito tempo com isso, e ñ consigo resolver…

Qualquer ídéia é bem recebida!!!

Vlw !!!

http://www.guj.com.br/posts/preList/117668/638264.java#638264

http://java.sun.com/javaee/5/docs/tutorial/doc/bnarf.html#bnari

Continuo sem entender…!!
Parece que fugiu um poko do assunto…O meu erro é igual o do Demys

Alguém pode dar uma solução viável…!!!
Vlw!!! PLEASE!!!

[quote=Mibex ??’]Continuo sem entender…!!
Parece que fugiu um poko do assunto…O meu erro é igual o do Demys

Alguém pode dar uma solução viável…!!!
Vlw!!! PLEASE!!![/quote]

Fala Mibex ??’ blz?
Immediate é meio complicado mesmo, mas acho que antes você precisa ter certeza se precisa disso mesmo, faz um teste no seu bean em modo DEBUG, marque um breakpoint em algum método do seu domain, setName por exemplo e dê um submit no seu form com immediate= true, você vai perceber que com immediate true além de não validar os campos o JSF não seta os valores, não tenho certeza mas acho que isso é feito por segurança mesmo, imagina você tem um campo idade do tipo long e o usuário preenche “trinta anos”…é pau na certa, por isso acho que o JSF não seta os valores, alguém que saiba a verdadeira razão me corriga por favor, isso é apenas um conclusão minha blz?
Mas de nada adianta falar e não ti ajudar, portanto tente fazer o seguinte caso queira insistir com o seu immediate:

//no seu managed-bean
private HtmlInputText bindingName;
//get e set

//na sua view jsp
&lt;h:outputText   value="#{userBean.user.name}" binding="#{userBean.bindingName}" /&gt;

//no método do seu managed-bean
public String submitTest() {
System.out.println(bindingName.getSubmittedValue().toString());
}

Na linha 2 nós criamos um binding no seu managed-bean, como nosso amigo havia dito anteriormente.
Na linha 6 fazemos essa “ligação”.
Na linha 9 é um método apenas para teste.

Acho que esse exemplo é uma forma de contornar o immediate, mas sinceramente eu não gosto muito, imagina um formulário com 10 campos inputText, seriam 10 binding no seu managed-bean.
Se você deseja apenas transitar para a próxima página e mesmo assim pegar os valores digitados pelo usuário, não acredito que você irá conseguir sem ter que chamar um método e setar os valores com binding para depois sim ir para a próxima página.

Boa sorte cara, espero ter ajudado e desculpe se falei alguma besteira.
Abraços,