jmoordbtaller
  • Introducción
  • Requisitos
  • Dependencias
  • Repositorios de proyectos
  • Arquitectura
  • Taller 0. Instalar Java
    • Configurar maven
  • Taller 1 MongoDB
  • Taller 2 CRUD MongoDB
    • Insertar documentos
    • Consulta de documentos
    • Documento embebido
    • Eliminar Documentos
    • Actualizar documentos
    • Agregaciones
    • Crear un indice
  • Taller 3 EJB
    • Crear el proyecto ejb
    • Dependencias
    • Entity
    • Repository
  • Taller 4 Java EE 8
    • dependencias
    • Controller
    • new.xhtml
    • index.hxmtl
    • Ampliar el método save()
    • ejecutar proyecto
    • datatable
    • CommandLink
  • Taller 5- Verificar si existe al guardar
  • Taller 6-Bases datos en tiempo de ejecución e Historial de revisión
  • Taller 7. Aplicar temas
  • Taller 8. Eliminar
  • Taller 9- Editar
  • Taller 10. Historial de revisiones
  • Taller 11.Conocer la llave primaria y el valor en tiempo de ejecucion
  • Taller 12. UserInfo
    • Controller
  • Taller 13. Converter/DataModel/Services
    • Services
    • Converter
    • DataModel
  • Taller 14.Autocomplete
    • Componente autocompletepersona
    • Agregar el componente al list.xhtml
  • Taller 15. Paginacion
    • Pais en Proyecto ejb
    • Pais en Proyecto Web
      • Formularios list.xhmtl, new.xhtml, view.xhtml
      • <e:autocompletepais/>
      • <e:paginator>
    • PaisController.java
      • Metodos
        • init()
        • save()
        • delete()
        • edit()
        • handleAutocompleteOfListXhtml()
        • showAll()
        • move(Integer page)
        • searchBy()
        • prepare
        • desplazarse en las paginas
          • printAll()
          • clear()
        • Codigo Completo
        • index.xhtml
  • Parte II- Avanzado
    • Taller 16. crudejb
      • Agregar dependencias
      • Entity
        • Rol.java
        • Usuario.java
      • Repository
      • Services
      • Datamodel
      • Converter
    • Mongodb
      • Insertar documentos en la colección MongoDB
    • Capitulo 17. Arquetipos
      • Crear el proyecto en base al arquetipo
    • Taller 18. Crear proyecto Web
      • Dependencias
      • web.xml
      • Java EE 8 Security
        • ApplicationConfig.java
        • CustomInMemoryIdentityStore.java
      • properties
      • template
        • footer.xhtml
        • template.xhtml
        • top.xhtml
      • resources
      • index.xhtml
      • login
        • login.xhtml
        • LoginController.java
        • Codigo completo
      • Controller
        • Validar duplicados en un autocomplete multiple
        • RolController.java
        • UsuarioController.java
      • <jmoordbjsf:autocomplete>
      • <jmoordbjsf:search>
      • <jmoordbjsf:paginator>
      • <jmoordbjsf:yesno>
      • <jmoordbjsf:toolbarsave>
      • <jmoordbjsf:toolbarview>
      • pages
        • Rol
          • new.xhtml
          • view.xhtml
        • Usuario
          • new.xhtml
          • view.xhtml
    • Ejecutar el proyecto
  • Parte III-Crear una aplicacion web en base al arquetipo
    • Crear el proyecto
    • Editar el proyecto
    • Editar LoginController
    • Editar los paquetes y clases
    • Indicar la conexion a base de datos
    • Ejecutar el proyecto
  • Parte IV. Reportes con jmoordbreport
    • SubReporte Referenciado de Usuario
  • Parte V. Backup/Restore con jmoordbbackup
  • Parte VII Email
Powered by GitBook
On this page
  • view.xhtml
  • Ejemplo con formulario y el mismo controller.

Was this helpful?

Taller 9- Editar

Agregaremos la opción de editar un registro en el Controller

public String edit() {
        try {

            repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                    "myusername",
                    "update", "persona", personaRepository.toDocument(persona).toString()));

            personaRepository.update(persona);
              JsfUtil.successMessage("Se actualizo el documento");
        } catch (Exception e) {
            JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
        }
        return "";
    }

En el formulario list.xhtml debemos seleccionar un documento y pasarlo a un formulario nuevo con todos los datos.

view.xhtml

Tenemos varias formas de real izarlo

  • En la misma pagina mediante un dialogo

  • En otra pagina usando el mismo controller

  • En otra pagina usando un controller nuevo

‌

  • Creamos una pagina nueva llamada view.xhtml

  • Agregamos dos etiquetas y dos cajas de texto

  • Asociados al enity dentro del Controller

  • Agregar botones para regresar al index y para invocar la pagina list

Ejemplo con formulario y el mismo controller.

Si definimos el alcance del Controller como @ViewScoped, debemos guardar el valor seleccionado.

Creamos un método llamado go(Persona persona) y guardamos el entity seleccionado.

Jmoordb nos ofrece la clase JmoordbContext en la cual podemos guardar objetos en la sesión actual.

  public String prepare(Persona persona){
        try{
              JmoordbContext.put("persona", persona);
               JmoordbContext.put("action", "view");
       
        } catch (Exception e) {
            JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
        }
        return "view";
      
    }

Modificar el init()

 if(JmoordbContext.get("action")!= null){
            String action = (String)JmoordbContext.get("action");
            if(action.equals("view")){
                persona = (Persona)JmoordbContext.get("persona");
            }
        }

En la pagina list.xhtml

Agregar un nuevo botòn

  <p:column>
                        <p:commandButton                                             
                            icon="fa-trash-o" 
                            value="Editar" 
                            process=":form:datatable" 
                            action="#{personaController.prepare(item)}" 
                            update=":form:datatable, :form:msg" > 

                        </p:commandButton>

Crear el archivo view.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>Editar</title>
            </f:facet>
        </h:head>

        <h:body>


            <h:form  id="form" prependId="true">
                <p:messages  id="msg"/>
                <p:panelGrid columns="2">
                    <p:outputLabel value="Cedula"/>
                    <p:inputText value="#{personaController.persona.cedula}" disabled ="true" required="true"/>
                    <p:outputLabel value="Nombre"/>
                    <p:inputText value="#{personaController.persona.nombre}"  required="true"/>
                    <p:outputLabel value="Edad"/>
                    <p:inputText value="#{personaController.persona.edad}" required="true"/>
                </p:panelGrid>
                <p:row>
                    <p:column>
                          <p:commandButton value="edit"
                                 action="#{personaController.edit}"
                                 update=":form:msg, :form"/>
                    </p:column>
                    <p:column>
                         <p:commandButton value="list" action="list" immediate="true"/>
                    </p:column>
                    <p:column>
                         <p:commandButton value="index" action="index" immediate="true"/>
                    </p:column>
                </p:row>
              
                
              
            </h:form>

        </h:body>

    </f:view>
</html>

al dar clic en Editar nos muestra la pagina de EDITAR

Cambiamos el nombre y damos clic en el botòn Edit

Si presionamos el botón list para regresar al listado, observamos el registro actualizado

Recuerde que podemos ver el historial de revisiones

Podemos hacer una búsqueda del documento persona con id=3

Ejecutar desde la consola

mongo

use practica_history

db.revisionhistory.find({"document":"persona","id":"3"}).pretty()

Podemos ver el historial de cambios

PreviousTaller 8. EliminarNextTaller 10. Historial de revisiones

Last updated 6 years ago

Was this helpful?