[JSF]Troca de mensagens entre objetos no jsf

5 respostas
Psycopata

Gente, suponhamos o seguinte cenário:
São quatro objetos, [b]A[/b], [b]B[/b], [b]C[/b], [b]D[/b].
A tela [b]a[/b] sensibiliza o objeto [b]A[/b]
A tela [b]b[/b] sensibiliza o objeto [b]B[/b]
A tela [b]c[/b] sensibiliza o objeto [b]C[/b]

Após a tela [b]c[/b], vem a tela [b]d[/b] onde [b]d[/b] chama o objeto [b]D[/b] para processar os dados. O problema é que [b]D[/b] é quem processa os dados contidos nos objetos [b]A[/b], [b]B[/b] e [b]C[/b].

A pergunta então é: como fazer o objeto [b]D[/b] enxergar os valores setados nos objetos [b]A[/b], [b]B[/b] e [b]C[/b] [b]sem[/b] recorer a métodos que leem a sessão na marra?

5 Respostas

S

Não sei se ajuda, mas existe um design pattern chamado observer pattern, talvez seja o caminho.

rissato

Vc pode utilizar property’s para trocar dados entre os managed beans configurando a definição dos mesmos no faces-config.xml. Segue o exemplo:

<managed-bean>
  <managed-bean-name>User</managed-bean-name>
  <managed-bean-class>beans.UserMB</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
  <managed-property>
    <property-name>outroBean</property-name>
    <value>#{outroBean}</property-name>
  </managed-property>
</managed-bean>
Psycopata

Mas rissato, com isso, quando o JSF iniciar ele vai ler os objetos definidos no feces-conig. Mas durante todo o processo, ele vai atualizar os objeto?

Assim, quando a aplicação inicia, todos os objetos estão vazios. Daí o usuário coloca dados nele e aperta o botão próximo. Com isso o ciclo de vida do JSF é completado e o JSF exibe a próxima página.
Nesse momento, após o usuário precionar o botão, o servidor JSF atualiza os valores dos objetos listados com property?

teve uma aplicação que eu fiz que não funcionu.

rissato

tem q testar mano…

mas levando em conta o valor a propriedade do seu managed bean abriga a REFERENCIA para o objeto, isso deveria funcionar normalmente…

G

vc pode usar save state do jsf, ou qulquer outro escopo de conversaçao como o do tomahakw, richfaces …
talvez resolva seu problema …

Criado 6 de março de 2009
Ultima resposta 6 de mar. de 2009
Respostas 5
Participantes 4