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:
<p:commandButton value="Passar valor"
process="@this">
<f:setPropertyActionListener value="#{nomePrimeiroMB.objeto1}" target="#{nomeSegundoMB.objeto2}"/>
</p:commandButton>
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!