Código:
<?xml version='1.0' encoding='UTF-8' ?> <!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://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core" > <h:head> <title>Facelet Title</title> </h:head> <h:body> <f:view> <h:form id='form'> <h:outputLabel>Id</h:outputLabel> <h:inputText id="identification" value="#{personas.id}"/> <!-- BOTÓN BUSCAR --> <h:commandButton value="Buscar"/> <h4> Encontrados </h4> <h:dataTable value="#{personasJpaController.findPersonas(personas.id)}" var="personas" border="2"> <h:column> <f:facet name="header"> <h:outputText value="Id"/> </f:facet> <h:outputText value="#{personas.id}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Nombres"/> </f:facet> <h:outputText value="#{personas.nombres}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Apellidos"/> </f:facet> <h:outputText value="#{personas.apellidos}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Salario"/> </f:facet> <h:outputText value="#{personas.salario}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Edad"/> </f:facet> <h:outputText value="#{personas.edad}"/> </h:column> </h:dataTable> </h:form> </f:view> </h:body> </html>
PersonasJpaController
Código:
Al presionar el botón buscar se actualizan los resultados al igual que la página entera. lo que quiero es que el botón buscar solo accione la datatable con sus resultados.package prueba; import java.io.Serializable; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.persistence.*; import prueba.exceptions.NonexistentEntityException; @ManagedBean @SessionScoped public class PersonasJpaController implements Serializable { public PersonasJpaController() { this.emf = Persistence.createEntityManagerFactory("Prueba3EclipseLinkPU"); } public PersonasJpaController(EntityManagerFactory emf) { this.emf = emf; } private EntityManagerFactory emf = null; public EntityManager getEntityManager() { return emf.createEntityManager(); } public List<Personas> findPersonasEntities() { return findPersonasEntities(true, -1, -1); } public List<Personas> findPersonasEntities(int maxResults, int firstResult) { return findPersonasEntities(false, maxResults, firstResult); } private List<Personas> findPersonasEntities(boolean all, int maxResults, int firstResult) { EntityManager em = getEntityManager(); try { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); cq.select(cq.from(Personas.class)); Query q = em.createQuery(cq); if (!all) { q.setMaxResults(maxResults); q.setFirstResult(firstResult); } return q.getResultList(); } finally { em.close(); } } public Personas findPersonas(Integer id) { EntityManager em = getEntityManager(); try { return em.find(Personas.class, id); } finally { em.close(); } } }
PD: Empezando JSF