15/10/2013, 05:08
|
| | Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 6 meses Puntos: 0 | |
Formulario JSF, buscar en tablas Index.xhtml
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:
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();
}
}
}
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.
PD: Empezando JSF
Última edición por NeoAres; 18/10/2013 a las 04:43 |