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


