JSF e fluxo entre Controllers

24/07/2009

1

A minha duvida é a seguinte (sou novo em JSF):
é normal (correto) passar de um controller para outro? (como se fosse um forward)&63

Por exemplo, na pagina de login, depois que o usuario entre com o login e senha, é acionado o método LoginController.valida. No método, eu verifico se o login e senha conferem. Se positivo, antes de passar para uma nova pagina jsf, eu preciso ir ao banco para buscar por exemplo os pedidos do usuario. Como faço este mapeamento no faces-config&63 Eu só vi exemplos onde o to-view-id é uma pagina. Não gostaria de fazer uma chamada para buscar Pedidos dentro do Controller no Login.
Será que entendi algo errado&63&63&63

[]s!
Responder

Posts

28/07/2009

Rlazoti

Roberto, no geral usa-se um backingbean para pagina.

No caso do seu backingbean de login, creio que nao seja responsabilidade dele listar os pedidos, então apos realizado o login o usuário seria redirecionado (via regras de navegacao do jsf ) para uma outra pagina ( correto? ) e caso esta pagina deva ser iniciada já mostrando esses pedidos voce pode utilizar o construtor do seu outro backingbean ( responsavel por esta pagina ) para já carregar os pedidos.
Responder

28/07/2009

Anonymous

Valeu Rodrigo. Mas nao parece forçar a barra realizar uma consulta no contructor do backingbean? Será que é uma boa prática&63
O que eu quero não é tão incomum assim.. Por exemplo, em um webmail, depois de logar, aparece a lista dos emails da caixa de entrada.
Mas de qq forma, valeu pela ajuda! vou seguir seu conselho.
[]s
Responder

29/07/2009

Anonymous

Bom, eu acabei fazendo o seguinte:

chamei normalmente a página onde se lista os pedidos.
Na página fiz na declaração do form:
<h:form binding=´#{pedidoCtrl.init}´>

No PedidoControler (mapeado como pedidoCtrl), criei o atributo init, com seus gets e sets.
No método getInit, fiz a consulta, setando a lista de pedidos. Aí na página, utilizei a lista normalmente:

<t:dataTable id=´myTable´
var=´pedido´
value=´{pedidoCtrl.pedidos}´
...
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira