datatable
datatable
En el controller agregar un List<Persona>
Crear los métodos set/get
List<Persona> personaList = new ArrayList<>();
public List<Persona> getPersonaList() {
return personaList;
}
public void setPersonaList(List<Persona> personaList) {
this.personaList = personaList;
}
En el método getPersonaList editarlo e invocar el metodo findAll() del Repository
return personaRepository.findAll();
Quedaría
public List<Persona> getPersonaList() {
// return personaList;
return personaRepository.findAll();
}
Código completo
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.avbravo.practica.controller;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.practicaejb.entity.Persona;
import com.avbravo.practicaejb.repository.PersonaRepository;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
/**
*
* @author avbravo
*/
@Named
@ViewScoped
public class PersonaController implements Serializable{
@Inject
PersonaRepository personaRepository;
Persona persona = new Persona();
List<Persona> personaList = new ArrayList<>();
public List<Persona> getPersonaList() {
// return personaList;
return personaRepository.findAll();
}
public void setPersonaList(List<Persona> personaList) {
this.personaList = personaList;
}
public PersonaRepository getPersonaRepository() {
return personaRepository;
}
public void setPersonaRepository(PersonaRepository personaRepository) {
this.personaRepository = personaRepository;
}
public Persona getPersona() {
return persona;
}
public void setPersona(Persona persona) {
this.persona = persona;
}
@PostConstruct
public void init() {
//
// JmoordbConnection jmc = new JmoordbConnection.Builder()
// .withSecurity(false)
// .withDatabase("practica")
// .withHost("")
// .withPort(0)
// .withUsername("")
// .withPassword("")
// .build();
}
public String save() {
try {
if (personaRepository.save(persona)) {
JsfUtil.successMessage("Guardado");
} else {
JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
}
} catch (Exception e) {
JsfUtil.errorDialog("save()", e.getLocalizedMessage());
}
return "";
}
}
Crearemos la interface
Agregar al index.xhtml
<br></br>
<h:link outcome="list" value="Listar" />
Crear una pagina nueva llamada list.xtml
Agregar un datatable
<p:dataTable value="#{personaController.personaList}"
var="item">
Agregar las columnas
<p:column headerText="Cedula">
<p:outputLabel value="#{item.cedula}"/>
</p:column>
list,xhtml
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.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">
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
<title>PrimeFaces</title>
</f:facet>
</h:head>
<h:body>
<h:form id="form" prependId="true">
<p:messages id="msg"/>
<p:dataTable value="#{personaController.personaList}"
var="item">
<p:column headerText="Cedula">
<p:outputLabel value="#{item.cedula}"/>
</p:column>
<p:column headerText="Nombre">
<p:outputLabel value="#{item.nombre}"/>
</p:column>
<p:column headerText="Edad">
<p:outputLabel value="#{item.edad}"/>
</p:column>
</p:dataTable>
</h:form>
</h:body>
</f:view>
</html>
Al ejecutar el proyecto
Last updated
Was this helpful?