Olá pessoal.
Trabalho com Struts, Hibernate, EJBs etc. há algum tempo, mas sou ainda um estudante sobre Spring e JSF.
Para colocar em prática o pouco que estudei, resolvi criar um pequeno projeto utilizando Hibernate, Spring e JSF. No caso do JSF, optei por utilizar o ICEFaces.
Na aplicação criada, a primeira página é a de login (login.jspx). Nesta página há um componente ice:commandButton que submete um ice:form, invocando um Managed Bean (MB). Neste MB, é utilizado um objeto facade, cuja injeção de dependência é feita pelo Spring. Bom, até aqui tudo funciona em minha aplicação. Porém, após o usuário ser autenticado com sucesso, meu MB redireciona a aplicação para uma página chamada listaUsuarios.jspx, a qual listará usuários cadastros no sistema. Nesta página há um componente ice:dataTable, que tem como “value” uma ação de um outro Managed Bean, mas que também está configurado para receber um facade “injetado” pelo Spring. Mas, no redirecionamento da página login.jspx para a listaUsuarios.jspx, o Facade não é injetado pelo Spring no MB… No entanto, quando dentro da página listaUsuarios.jspx eu coloco um componente <ice:commandButton type=“submit” … /> com a mesma ação que está no componente ice:dataTable desta página, o Facade é injetado no MB…
Resumindo, parece que o Spring só injeta os Facades no meus Managed Beans quando os métodos nos MBs são invocados via <ice:commandButton type=“submit” … /> ou <ice:commandLink … />…
Alguém sabe me dizer porque? Sou ainda bastante leigo no Spring, mas pensei que ele injetasse as dependências sempre, de acordo com a configuração no applicationContext.xml, independente de efetuar, por exemplo, um Submit em um form.
Caso alguém possa me ajudar, fico agradecido.
Valeu!!!