martes, 1 de octubre de 2013

Buscar Registro en Primefaces con mybatis

Crear una clase



public class Perfil {

      private Integer id;
      private String descripcion;
     
      public Perfil() {}
     
      // get y set
}


Crear PerfilDao


      public List<Perfil> buscarPerfilPorBusqueda(Perfil perfil) {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                        List<Perfil> perfils = session.selectList("Perfil.buscarPerfilPorBusqueda",perfil);
                       return perfils;
                } catch (Exception e) {
    System.out.println("Error en PerfilDao>buscarPerfilPorBusqueda: "+e.getMessage());
                  return null;
            } finally {
                  session.close();
            }
 
Crear ManagedBean llamanada PerfilBean


      public void buscarPerfilPorBusqueda() {
            System.out.println("dentro de busqueda ");
            perfilDao = new PerfilDao();
      perfilPorBusqueda = perfilDao.buscarPerfilPorBusqueda(perfilBuscado);
      }

      public List<Perfil> getPerfilPorBusqueda() {
            return perfilPorBusqueda;
      }

      public void setPerfilPorBusqueda(List<Perfil> perfilPorBusqueda) {
            this.perfilPorBusqueda = perfilPorBusqueda;
      }

Codigo de XHTML



<!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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">

<ui:composition template="/WEB-INF/plantillas/plantilla.xhtml">
      <ui:define name="contenido">

            <h:form style="margin-bottom: 8px">
                  <p:commandButton actionListener="#{perfilBean.prepararInsertar}"
                        update=":formNuevo:pgNuevo" oncomplete="dlgNuevo.show();"
                        value="Nuevo Perfil" icon="icon-add">
                  </p:commandButton>
            </h:form>
                              <h:form style="margin-bottom: 8px">
                  <p:commandButton action="#{perfilBean.imprimir()}" value="Reporte"
                        icon="icon-report" ajax="false">
                  </p:commandButton>
            </h:form>
           
<h:form id="formBusqueda">
            <p:growl id="growlBusquedaClientes" />
              <p:tab id="clientes" title="Clientes">
              <p:panel header="Búsqueda de Perfil">  
                <h:panelGrid columns="6">
               
                 <h:outputLabel value="Id "/>
                <p:inputText value="#{perfilBean.perfilBuscado.id}"/>
                 <h:outputLabel value="Descripcion"/>
                <p:inputText value="#{perfilBean.perfilBuscado.descripcion}"
                                   style="width: 400px" />
                            </h:panelGrid>
             <p:separator/>
                <p:commandButton value="Buscar"
             actionListener="#{perfilBean.buscarPerfilPorBusqueda}"
                                    update=":formLista:dataTable"
                                 icon="icon-disk" />
                                 </p:panel>
            </p:tab>
           
</h:form>
            <h:form id="formNuevo">
                  <p:dialog header="Nuevo Usuario" widgetVar="dlgNuevo"
                        resizable="false" id="dlgNuevo" modal="true">
                        <p:growl id="growlNuevo" sticky="true" life="1000" />
                        <h:panelGrid id="pgNuevo" columns="2" cellspacing="8"
                             style="margin:0 auto;">
                             <h:outputText value="descripcion" />
                             <p:inputText value="#{perfilBean.perfil.descripcion}"
                                   style="width: 400px" />
                        </h:panelGrid>
                        <p:separator />
                        <p:commandButton value="Guardar"
                             actionListener="#{perfilBean.insertar}"
                             update=":formLista:dataTable, growlNuevo, dlgNuevo"
                             oncomplete="dlgNuevo.hide()" icon="icon-disk" />
                        <p:commandButton value="Cancelar" update=":formLista:dataTable"
                             oncomplete="dlgNuevo.hide()" icon="icon-cancel" />
                  </p:dialog>
            </h:form>

            <h:form id="formLista">
                  <p:growl id="growlBusquedaClientes" />
               
              <p:tab id="clientes" title="Clientes">
              <p:panel header="Resultados de la Busqueda">
                        <p:dataTable id="dataTable" var="u" value="#{perfilBean.perfilPorBusqueda}"
                        emptyMessage="No hay Perfil disponibles." paginator="true" rows="10"
                        paginatorPosition="bottom"
                        paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                        rowsPerPageTemplate="5,10,15">
                        <p:column headerText="Id">
                             <h:outputText value="#{u.id}" />
                        </p:column>

                        <p:column headerText="Descripcion">
                             <h:outputText value="#{u.descripcion}" />
                        </p:column>

                        <p:column style="text-align: center">
                             <p:commandButton disabled="#{(u.id==1) ? true : false}"
                                   update=":formEditar:pgEditar"
      actionListener="#{perfilBean.prepararActualizar(u.id)}"
                                   oncomplete="dlgEditar.show();" title="Editar" icon="icon-edit" />
                             <p:commandButton disabled="#{(u.id==1) ? true : false}"          actionListener="#{usuarioBean.prepararEliminar(u.id)}"
                                   oncomplete="dlgEliminar.show();" title="Eliminar"
                                   icon="icon-delete" />
                        </p:column>
                  </p:dataTable>
                  </p:panel>
              </p:tab>
            </h:form>
            <h:form id="formEditar">
                  <p:dialog header="Editar Usuario" widgetVar="dlgEditar"
                        resizable="false" id="dlgEditar" modal="true">
                        <p:growl id="growlEditar" sticky="true" life="1000" />
                        <h:panelGrid id="pgEditar" columns="2" cellspacing="8"
                             style="margin:0 auto;">
                             <h:outputText value="Descripcion:" />
                             <p:inputText value="#{perfilBean.perfil.descripcion}"
                                   style="width: 400px" />
                        </h:panelGrid>
                        <p:separator />
                        <p:commandButton value="Actualizar"
                             update=":formLista:dataTable, growlEditar, dlgEditar"
                             actionListener="#{perfilBean.actualizar}"
                             oncomplete="dlgEditar.hide()" icon="icon-update" />
                        <p:commandButton value="Cancelar" update=":formLista:dataTable"
                             oncomplete="dlgEditar.hide()" icon="icon-cancel" />
                  </p:dialog>
            </h:form>
            <h:form id="formEliminar">
                  <p:growl id="growlEliminar" sticky="true" />
                  <p:confirmDialog id="dlgEliminar"
                        message="¿Desea eliminar este usuario" header="Eliminar Integrante"
                        severity="alert" widgetVar="dlgEliminar">
                        <p:commandButton value="Eliminar"
                             update=":formLista:dataTable, growlEliminar, dlgEliminar"
                        actionListener="#{perfilBean.eliminar}"
            oncomplete="dlgEliminar.hide()" icon="icon-delete" />
                        <p:commandButton value="Cancelar" update=":formLista:dataTable"
                             oncomplete="dlgEliminar.hide()" icon="icon-cancel" />
                  </p:confirmDialog>

            </h:form>
      </ui:define>
</ui:composition>
</html>

Resultado
 
 

1 comentario: