Usando JSF (com Oracle ADF Faces), como posso carregar dados na página, assim que ela for acessada?
Preciso exibir uma lista de dados assim que a página for carregada.
Eu coloquei a busca no construtor do backing bean, mas acredito que esta não seja a melhor forma.
Existe alguma maneira de criar um método específico para isto?
Imagine que na mesma tela eu tenha inclusão de dados. Quando insiro, pela busca ser executada no construtor, os dados aparecerão atualizados após o refresh.
Porque além de não ser uma “boa prática” (…) imagina que você está utilizando injection no faces-config.xml e, nesse injection você injeta um DAO. Você quer que carregue a lista de usuários quando for chamado a primeira vez. Se você botar o método no construtor, as injeções não irão acontecer, ou seja, o teu DAO será null. Se tu utilizasse o ViewController do apacha Shale, existe um método lá que pertence ao lifecycle do Backign Bean (init(), mas também há outros métodos como preprocess(), prerender() e destroy()) que, pelo que sei só são chamado depois das injections.
Meu velho a ideia é você fazer com que seu construtos chame o metodo de consulta mesmo.
Agora veja bem você poderia usar ajax, para chamar no onload do página caso nao queira colocar no contrutor, uma boa pedida para isso seria o DWR.
Sim, foi o que imaginei mesmo.
Na verdade eu só queria saber se existia uma forma de fazer um método callback ou algo do tipo que é executado quando a página é carregada, pois eu não queria que o meu método getLista() fosse fazer a busca dos dados, como você sugeriu, ou mesmo ter de fazer a busca no construtor.
ServletContextListener? Tá viajando… hehehehehehehehe…
Eu não estou querando agregar soluções (nem DWR, nem AJX puro, nem nada)… só queria saber se existia uma forma de usar um método callback para quando a página fosse caregada.
Mesmo porque, usando a solução proposta pelo Leozin, deu meio certo.
Eu tenho campos de input e um botão Salvar e logo abaixo uma lista. Quero que toda informação do input seja salva no clique do botão e seja exibido na lista abaixo. Esperava que o ao click no botão salvar, ele executasse o método corresponente no backing bean e depois carregasse a lista. Mas isso não acontece nesta ordem, necessariamente. Enfim!