Pessoal é o seguinte estou fazendo um projeto em que precisa listar uns dados em uma tabela (esses dados estão no banco, mas isso não é importante).
O problema é no meu controller, eu criei uma lista pra receber esses dados. Na pagina tenho um <p:datatable> nesse datatable eu tento colocar o nome do meu managedBean.nome_da_lista. Ma ele não está reconhecendo de jeito nenhum. Reconhece tudo que tem no meu controller menos essa lista. Alguém pode me ajudar?
Qual a mensagem de erro?
Criou sua lista seguindo o padrão javabeans? Com get/set no nome?
Ahhhhhh cara, agora tu me lembrou que precisa o get e set pra ele também se eu quiser acessar da página. Brigadão aí, graças a você vou destravar onde tinha travado, novamente obrigado =)
[quote=Hebert Coelho]Qual a mensagem de erro?
Criou sua lista seguindo o padrão javabeans? Com get/set no nome?[/quote]
Vish cara pensei que dessa vez iria dar, mas não deu
Controller
package com.tasklist.controller;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.tasklist.model.Atividade;
import com.tasklist.util.HibernateUtil;
@ManagedBean (name = "atividadeBean")
@SessionScoped
public class AtividadeController {
private Atividade atividade = new Atividade();
private List<Atividade> listaAtividades = new ArrayList<Atividade>();
private Session sessao;
private Transaction transacao;
public String cadastrarAtividade() {
abreConexao();
sessao.save(atividade);
fechaConexao();
inserirNaTabela();
return "index.xhtml";
}
@SuppressWarnings("unchecked")
public void inserirNaTabela() {
abreConexao();
String hql = "FROM Atividade";
Query query = sessao.createQuery(hql);
listaAtividades = (ArrayList<Atividade>) query.list();
}
public void abreConexao() {
this.sessao = HibernateUtil.getSession().getCurrentSession();
this.transacao = sessao.beginTransaction();
}
public void fechaConexao() {
this.transacao.commit();
try {
if(this.sessao.isOpen()){
this.sessao.close();
}
} catch (Exception e) {
System.out.println("Deu problema no fechamento da conexao" + e.getMessage());
}
}
public Atividade getAtividade() {
return atividade;
}
public void setAtividade(Atividade atividade) {
this.atividade = atividade;
}
public List<Atividade> getListaAtividades() {
return listaAtividades;
}
public void setListaAtividades(List<Atividade> listaAtividades) {
this.listaAtividades = listaAtividades;
}
}
Pagina
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="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"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="templateAlternativo.xhtml">
<ui:define name="pageTitle">Title</ui:define>
<ui:define name="pageHeader">Header</ui:define>
<ui:define name="menu">
<h3>Cadastrar Atividades</h3>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Atividade" />
<p:inputText value="#{atividadeBean.atividade.nomeAtividade}" required="true" />
<h:outputText value="Data" />
<p:inputText value="#{atividadeBean.atividade.data}" required="true" />
<h:outputText value="Horário" />
<p:inputText value="#{atividadeBean.atividade.horario}" required="true" />
</h:panelGrid>
<br/>
<p:commandButton type="submit" value="Cadastrar" action="#{atividadeBean.cadastrarAtividade()}"/>
</h:form>
</ui:define>
<ui:define name="conteudo">
<p:dataTable value="#{atividadeBean.listaAtividades}" var="atividade">
<p:column>
<f:facet name="header"><h:outputText value="Atividade"/></f:facet>
<h:outputText value="#{atividade.nomeAtividade}"/>
</p:column>
</p:dataTable>
</ui:define>
</ui:composition>
</h:body>
</html>
O erro fala que listaAtividades não foi encontrada no tipo AtividadeContrller.