Bom dia pessoal, seguinte estou conseguindo popular meu data table com todos os dados do banco
está vindo certinho.
Agora estou tentando fazer o seguinte, coloquei uma coluna a mais no meu data table onde ao clicar abriria um dialog com as informações detalhadas da linha selecionada.
Se alguem puder me dar uma luz, eu agradeço
segue o código da pagina:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title></title>
</h:head>
<!--Página responsável pelo cadastro dos personagens do jogador -->
<ui:composition template="/template/template.xhtml">
<ui:define name="conteudo">
<div>
<p:dataTable value="#{personagemMB.listarPersonagens()}" var="personagem" paginator="true" rows="3">
<f:facet name="header">
Lista de Personagens
</f:facet>
<p:column headerText="Nome">
<h:outputText value="#{personagem.nome}"/>
</p:column>
<p:column headerText="Classe">
<h:outputText value="#{personagem.classe}"/>
</p:column>
<p:column headerText="Raça">
<h:outputText value="#{personagem.raca}"/>
</p:column>
<p:column headerText="Alterar">
<p:commandButton id="SelectButton" update="detalhesPainel" onclick="personagem.show();" icon="ui-icon-search" title="Alterar" type="button">
<f:setPropertyActionListener target="#{personagemMB.personagemSelecionado}" value="#{personagem}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog header="Detalhes / Alterar" widgetVar="personagem" resizable="false" id="personagemDialog" showEffect="fade"
hideEffect="explode" >
<p:panelGrid id="detalhesPainel" columns="2">
<h:outputText value="Nome" />
<h:outputText value="#{personagemMB.personagemSelecionado.nome}"/>
</p:panelGrid>
</p:dialog>
</div>
</ui:define>
</ui:composition>
</html>
Meu bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.jragonha.mbeans;
import br.com.jragonha.bd.PersonagemDAO;
import br.com.jragonha.models.Classe;
import br.com.jragonha.models.Personagem;
import br.com.jragonha.models.Raca;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
/**
*
* @author jilles ragonha
*/
@ManagedBean
@RequestScoped
public class PersonagemMB implements Serializable {
private Personagem personagemSelecionado;
private Personagem personagem = new Personagem();
private List<Classe> classes = new ArrayList<Classe>();
private List<Raca> racas = new ArrayList<Raca>();
private PersonagemDAO dao = new PersonagemDAO();
List<Personagem> personagens = new ArrayList<Personagem>();
String outcome;
public List<Raca> getRacas() {
return racas;
}
public Personagem getPersonagemSelecionado() {
return personagemSelecionado;
}
public void setPersonagemSelecionado(Personagem personagemSelecionado) {
this.personagemSelecionado = personagemSelecionado;
}
public void setRacas(List<Raca> racas) {
this.racas = racas;
}
public List<Classe> getClasses() {
return classes;
}
public void setClasses(List<Classe> classes) {
this.classes = classes;
}
public PersonagemDAO getDao() {
return dao;
}
public void setDao(PersonagemDAO dao) {
this.dao = dao;
}
public Personagem getPersonagem() {
return personagem;
}
public void setPersonagem(Personagem personagem) {
this.personagem = personagem;
}
/**
* Método usado para salvar o personagem em um banco
*
* @return
*/
public String salvarPersonagem() {
if (dao.salvar(personagem)) {
outcome = "SALVO";
}
return outcome;
}
/**
* Método que carrega todas as classes existentes no banco
*
* @return ArrayList com todas as classes
*/
public List<Classe> listarClasses() {
classes = dao.listarClasses();
return classes;
}
/**
* Método que carrega todas as reças vindas do banco de dados em um
* selectOneMenu
*
* @return ArrayList com todas as raças
*/
public List<Raca> listarRacas() {
racas = dao.listarRacas();
return racas;
}
public List<Personagem> listarPersonagens() {
personagens = dao.listar();
return personagens;
}
public String editarPersonagem() {
String outcome;
outcome = "ATUALIZAR";
return outcome;
}
public String deletarPersonagem() {
String outcome = null;
if (dao.remover(personagem)) {
outcome = "DELETADO";
}
return outcome;
}
public String atualizarPersonagem(Personagem personagem) {
this.personagem = personagem;
String outcome = null;
if (dao.atualizar(personagem)) {
outcome = "ATUALIZADO";
}
return outcome;
}
public void limpar() {
if (personagem != null) {
personagem = null;
}
}
}
Bom o que esta acontecendo é o seguinte, do jeito que esta atualmente, ele abre o dialog, porem ele nao vem com nenhum dado
agradeço qualquer ajuda: abraços