Passar parametros de uma pagina jsf para outra usando o mesmo bean

2 respostas
jaspionrox

Olá pessoal,

seguinte, tenho uma pagina com o seguinte commandlink:

<h:commandLink action="#{ordemBean.verDetalhes}"> <h:outputText value="##{os.id}" /> <f:setPropertyActionListener value="#{os.id}" target="#{ordemBean.idOs}" /> </h:commandLink>

esse commandlink executa um método que busca um objeto por id do banco, e me redireciona para outra página, que é controlada pelo mesmo backing bean. O problema é que esse objeto que eu procurei não está mais setado no bean, e acaba dando nullpointer em um certo pedaço do código.
Mudei o escopo do bean para session e funcionou, mas acaba dando problema em outras parte da página, justamente por sem escopo de sessão.

também tentei jogar o objeto procurado no request, e no construtor do bean verificar se ele estava lá, mas ele nao estava.

Alguém ja passou por isso?

Obrigado,
[]s

2 Respostas

JotaJota

como vc configurou seu bean no seu faces-config.xml?

Qual o tipo de escopo???

pelo que entendi vc tem um bean do baking e um bean do obj que vc precisa.
eu faço assim:
eu faço o meu backing ter o objeto lá… e faço o bean desse backing com o scopo do tipo session…
nesse backing eu tenho um objeto com o lazy…
se vc esta controlando duas paginas pelo mesmo backing acho que resolveria seu problema…
logo: se vc setar o objeto da backing em uma pagina a outra vai ver tbm…

ficando assim:

<blockquote>    <h:commandLink action="#{ordemBean.verDetalhes}">

<h:outputText value="##{ordemBean.os.id}" />

<f:setPropertyActionListener value="#{ordemBean.os.id}" target="#{ordemBean.idOs}" />

  </blockquote>

entedeu?
beijosmeliga =*
boa sorte!

jaspionrox

Então jotajota,
o escopo do bean está como request mesmo, eu cheguei a mudar para session, mas ai acabou dando problema por causa de algumas mensagens que eu seto.

Bom, tive duas idéias, uma é colocar o id do objeto na sessão, e na outra pagina recupera-lo,
e a outra foi criar um outro backing bean para controlar essa minha outra página.

Valeu pelas dicas :smiley:

Criado 5 de junho de 2009
Ultima resposta 5 de jun. de 2009
Respostas 2
Participantes 2