Passar um Objeto entre páginas via POST no JSF

Galera Boa tarde
Estou com a seguinte duvida

  • Tenho um @ManagedBean (ClienteMB) com @ViewScoped que retorna um objeto de cliente.
  • Quando realizo uma pesquisa no ClienteMB e seleciono um dado tenho quero ser redirecionado para outro @ManagedBean (Bean2) com @ViewScoped mas preciso que o objeto cliente seja passado via POST para a @ManagedBean (Bean2).

1- Existe alguma forma de fazer isso? (utilizando POST)
2- O que vocês costumam fazer, passa o objeto completo ou somente o id?

  • conseguir fazer passando o Id do objeto Cliente e fazer a busca novamente na outra @ManagedBean (Bean2) via URL:
    <f:view> <f:metadata> <f:viewParam name="cliente" value="#{relatorioClienteMB.cliente}" /> <!-- <f:event type="preRenderView" listener="#{relatorioClienteMB.pesquisarPorId}"/> --> </f:metadata> ....... </f:view>

Eu nunca usei o preRenderView mas já li que pra fazer ele funciona precisa de algumas gambiarras
sempre que preciso direcionar os dados para outra pag passo ele todo e no caso essa listagem seria sessionScoped ou conversionScoped

Bom dia
Tmvolpato

Então


preRendeView //apenas executa o método antes que a view seja renderizada 

Estou fazendo isto pois não sei como passar o objeto inteiro para outro página, como consegui passar o Id faço uma busca no banco para recuperar o objeto.
As duas páginas são @ViewScoped, pois preciso matar o objeto da sessão assim que for redirecionado para outra página, vc por acaso sabe como posso fazer para passar o objeto entre páginas, pois não tenho nem a mínima ideia de como faço isso.

Desde já agradeço.

Cara, eu costumo fazer do jeito q vc ta fazendo, passando somente o id pelo preRenderView…
Se quiser passar o objeto inteiro, tem como, mas nao sei se é recomendado neste caso.

Pode passar objetos entre MB’s desta forma:

&lt;p:commandButton value="Passar valor" process="@this"&gt; &lt;f:setPropertyActionListener value="#{nomePrimeiroMB.objeto1}" target="#{nomeSegundoMB.objeto2}"/&gt; &lt;/p:commandButton&gt;
Assim estou passando o objeto objeto1 do MB nomePrimeiroMB para o objeto objeto2 do MB nomeSegundoMB.

Se a sua intenção for passar os valores após clicar em um botão, esta ação deve resolver seu problema!