Se alguém puder me ajudar nessa ficarei grato. Lembrando também que existem camadas mais profundas (Hibernate) porém o problema está realmente no controller que supostamente não contém a propriedade ?!?!?!?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"><h:head></h:head><h:body><h1>Teste do dataTable</h1><h:dataTablevalue="#{usuarioController.listarUsuarios}"var="listaUsuarios"><h:column><f:facetname="header"><h:outputTextvalue="#{listaUsuarios.login}"/></f:facet></h:column></h:dataTable></h:body></html>
private Usuario usuario = new Usuario(); (get e set)
private UsuarioDaoImpl dao = new UsuarioDaoImpl(); (get e set)
veja como ficou
public DataModel<Usuario> getListaUsuarios() {
List<Usuario> lista = dao.list();
System.out.println("!!!");
listaUsuarios = new ListDataModel<Usuario>(lista) ;
return listaUsuarios ;
}
eduardo.exs
Acho que pude não ter sido objetivo para exemplificar o problema, portanto…
Este é apenas um teste que estou fazendo para estudar JSF, cheguei a compor várias classes @ManagedBean porém sem utilização da persistência dentro do código do bean muito menos com elementos Collections
infelizmente esse não consegui por para funcionar…
esse bean deveria chamar um DAO para persistir o objeto Usuario (acho que talvez essa camada nem venha ao caso)
o jsf diz não conseguir acessar a property descrita acima… porém ela está lá, n consigo entender pois, quando eu não declaro o bean o erro informado é NullPointerException dizendo que o tipo não existe ou não foi encontrato e quando eu declaro ele diz que a propriedade não existe…
Ja perdi alguns fios de cabelo aqui (os poucos que me restam)
tmvolpato
o que vc tem nessa classe
UsuarioDaoImpl ?
cole ai
eduardo.exs
tmvolpato:
private Usuario usuario = new Usuario(); (get e set)
private UsuarioDaoImpl dao = new UsuarioDaoImpl(); (get e set)
Vou verificar, ja retorno (mas não intendi direito o pq tenho que transportar um identificador do meu dao para dentro do bean), poderia explicar?
vou testar e ja retorno
tmvolpato
se é só para teste usa os exemplos
que tem la no site do prime
que não utiliza camada dao
apenas cria uma lista no proprio ManagedBean para popular o datable de exemplo
eduardo.exs
Desculpe se não coloquei a totalidade do código, achei que não seria relevante para isto
1º o contrato do DAO
packagebr.com.self.dao;importjava.util.List;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.Transaction;importbr.com.self.model.Usuario;importbr.com.self.utils.ConnectHibernateFactory;publicclassUsuarioDAOImplimplementsUsuarioDAO{privateSessionsession;@Overridepublicvoidinsert(Usuariousuario){session=ConnectHibernateFactory.getInstance();Transactiontx=null;try{tx=session.beginTransaction();session.save(usuario);tx.commit();}catch(HibernateExceptionhe){he.printStackTrace();tx.rollback();}finally{session.close();}}@Overridepublicvoidupdate(Usuariousuario){// TODO Auto-generated method stub}@OverridepublicUsuarioget(Stringlogin){// TODO Auto-generated method stubreturnnull;}@Overridepublicvoidremove(Usuariousuario){// TODO Auto-generated method stub}@OverridepublicList<Usuario>list(){// TODO Auto-generated method stubreturnnull;}}
PS: Não tenho o bean mapeado no faces-config.xml nem absolutamente nada lá, meu web.xml tenho 99% de certeza que não esta causando o problema em todo caso aqui vai ele
se é só para teste usa os exemplos
que tem la no site do prime
que não utiliza camada dao
apenas cria uma lista no proprio ManagedBean para popular o datable de exemplo
Aí você me mata! rsrs, estou fazendo assim pq quero aprender cara! Eu ainda to na era do <%%> e do <%= %> (vergonha né!)
eduardo.exs
tmvolpato:
se é só para teste usa os exemplos
que tem la no site do prime
que não utiliza camada dao
apenas cria uma lista no proprio ManagedBean para popular o datable de exemplo
Site do prime?
Seria o que? primefaces?
eduardo.exs
Posso estar completamente errado! de uma ou outra forma sei que estarei!
mas enfim, sob meu ponto de vista, o DAOImpl o DAO (interface) o hibernate e etc a + que estiver nas camadas abaixo não estão nem sendo executados pq o tomcat está alegando que a propriedade do bean declarado por (@ManagedBean) não existe
Ja tentei declarar o bean no faces-config.xml mas o erro persistiu
Edição:
Como não estou seguindo nenhum tutorial disponível e fazendo tudo na unha pode ser que eu não tenha percebido algo no código
tmvolpato
eduardo.exs:
tmvolpato:
se é só para teste usa os exemplos
que tem la no site do prime
que não utiliza camada dao
apenas cria uma lista no proprio ManagedBean para popular o datable de exemplo
ele usa @Named mas vc pode Manter o @ManagedBean mesmo
qlqr duvida posta ai
eduardo.exs
cara o exemplo que vc citou o cara lá utiliza alguns conceitos que ainda não vi e sinceramente ja vi exemplos de pessoas que fizeram o CRUD sob a mesma perspectiva que estou tentando fazer, posso até ter pecado quanto à engenharia e padrões de projeto mas que ja vi rodando ja vi
@PostConstructpublicvoidinit(){
por exemplo, eu preciso de algo pra inicializar o bean? um construtor ou esse init()?
ou simplesmente chamando a sua propriedade ele adota os procedimentos para isso?
tmvolpato
eduardo.exs:
cara o exemplo que vc citou o cara lá utiliza alguns conceitos que ainda não vi e sinceramente ja vi exemplos de pessoas que fizeram o CRUD sob a mesma perspectiva que estou tentando fazer, posso até ter pecado quanto à engenharia e padrões de projeto mas que ja vi rodando ja vi
@PostConstructpublicvoidinit(){
por exemplo, eu preciso de algo pra inicializar o bean? um construtor ou esse init()?
ou simplesmente chamando a sua propriedade ele adota os procedimentos para isso?
Ele fez isso para que lista seja carregada com os valores passados
não precisa fazer isso, só qdo vc quer que certos dados seja carregado ao inicializar o bean
é o nome mais usado para esse nome de método
mas vc pode colocar outro seguindo o padrao
eduardo.exs
O que eu preciso é apenas “conseguir” fazer o xhtml colocar os dados na dataTable que vieram do hibernate…
tanto que neste teste que fiz não cheguei a “terminar” a dataTable, apenas gostaria de conferir se estava funcionando… infelizmente me dei mal…
E ja estou ficando muito chateado cara, pq toda vez que trabalho com o Bean JSF sem persistência, tudo é lindo, tudo funciona etc… inclusive a dataTable
e qdo vou mexer com o hibernate minha vida vira um inferno… infelizmente nos ultimos meses eu resolvi interrar de vez o jdbc senão vou acabar ficando sem emprego
Te devo um café!
E olha que olhei e olhei e olhei de novo… de tanta raiva até cego a gente fica!
Abraços
eduardo.exs
Tem um outro lance que talvez alguem me ajude de quebra…
eu usava o eclipse Indigo aí fui pro Juno (odiei, pelo menos enquanto não tiver máquina pra rodar ele, achei ele terrívelmente pesado) e agora vortei pro Helios, e meu Helios não completa o código EL (Tem como resolver via plugin ou config ou é da versão msm)?