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?